سؤال

أنت تعرف أزرار منتقي الألوان هذه مع مستطيل صغير فيه ، وعرض اللون المحدد حاليًا؟ كما في منتجات MS Office.

أود تنفيذ واحد باستخدام C# / .NET. لذلك لدي أيقونة صغيرة لطيفة مع مستطيل بلون أرجواني (وهو لعرض اللون) وخلفية شفافة.

أستطيع أن أفكر في طريقتين كيف يمكن القيام بذلك ، لكنهما ليسا أنيقين حقًا:

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

لذا. ربما أفتقد الطريقة الواضحة والسهلة لتنفيذ مثل هذا الزر؟ شكرًا مقدمًا على أي تلميحات/اقتراحات/إلهام :)

هل كانت مفيدة؟

المحلول 2

من الواضح ، لا يوجد حل أنيق. اخترت الأول ، باستخدام شفافية PNG و Backcolor ، مع عيب الاضطرار إلى تلوين خلفية PNG مثل خلفية اللوحة التي تحتوي على. يبدو أنه الأقل إيلامًا بهذه الطريقة.

نصائح أخرى

يمكنك بسهولة تجاوز OnPaint الطريقة ورسم مستطيل مع أي لون تريده.

لا أرى أي سبب لاستخدام أيقونة أو بابوا نيو غينيا أو أي مورد صورة آخر لهذا الغرض. هذا يبدو مضيعة كاملة للموارد.

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

لقد استخدمت للتو مربع التحرير والسرد مالك السقوط عندما فعلت هذا, ، لكنني رسمت صندوق ألوان وأنا أصف. سهل جدا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top