كيفية استخدام لونين في التسمية للنص في C#


لدي تسمية واحدة تحتوي على نص: مشروع …..في هذا النص أحتاج إلى الإحتراف في لون واحد والإخراج في لون آخر

الحل 1

يمكنك الحصول على لون واحد فقط في الملصق.
كحل بديل سهل، يمكنك استخدام تسميتين (بألوان خطوط مختلفة) للقيام بذلك.

سيكون الحل الأكثر تعقيدًا هو إنشاء عنصر تحكم المستخدم الخاص بك.

الحل 4

ذات مرة اضطررت إلى إنشاء علامة “تدرج”… هذا هو الرمز (يعمل في Winforms)

public partial class GradientLabel : Label {

public LabelEx() {
    InitializeComponent();
}

protected override void OnPaint(PaintEventArgs e) {
    Font font = new Font("Tahoma", 48f, FontStyle.Bold);
    LinearGradientBrush brush = new LinearGradientBrush(new Rectangle(0, 0, Width, Height + 5), Color.Gold, Color.Black, LinearGradientMode.Vertical);
    e.Graphics.DrawString(Text, font, brush, 0, 0);
}

}

هذا ليس “لونين” بالضبط، لكنه قد يقودك إلى الحل.

الحل 8

حل بديل. أنشئ “زرًا” سفليًا به بعض النص، ثم استمر في تغطيته بأزرار تحتوي على بعض الأحرف بألوان مختلفة و شفاف الخلفيات، تراكب “الزر” السفلي. أستخدم “زر” لأنها كلها كائنات وهمية على شكل زر. عنصر المستوى الأعلى فقط هو “زر” فعلي، وهو ما يعني أنه يحتوي على حدث عند النقر.

بالمناسبة، يعد هذا أمرًا عمليًا بما فيه الكفاية، حيث يتم استخدامه في أنواع معينة من عمليات التصيد الاحتيالي – حيث يتم تراكب بيانات موقع الويب الحقيقية بعناصر تحكم شفافة تقبل الإدخال، وترسله مرة أخرى إلى المحتالين، ثم تبلغ عن خطأ (الانتقال إلى الصفحة الحقيقية لإعادة الدخول) أو حتى إدخال النص في الشاشة الحقيقية مع اختفاء الطبقة غير المرئية.

الحل 9

أقترح عليك استخدام RichTextBox، فهو مكون قياسي ويمكن استخدامه كتسمية عن طريق تعيين readonly على true واستخدام HideCaret (انظر هنا: https://stackoverflow.com/questions/582312/how-to-hide-the-caret-in-a-richtextbox[^] على سبيل المثال)

الحل 2

حاول تعيين خاصية النص إلى نص HTML مثل

lbl.Text="<span style="color:Red;">Pro</span><span><span style="color:Green;">ject</span>";
</span>

من النهاية الخلفية لنموذج ASPX.

コメント

タイトルとURLをコピーしました