سؤال

لا أحد يعرف إذا كان و كيف أنا قادرة على تغيير لون صورة الشريط على انخفاض بسيط في visual studio عام 2008 ؟ حاليا مع القائمة المنسدلة الخاصة collectn من العناصر ، و بجانب كل على القائمة المنسدلة صورة غزة ، والتي لcurently رمادي اللون مع الضوء إلى الظلام التدرج.وأنا حريصة على معرفة ما إذا كان هذا اللون يمكن أن تتغير أو ربما إزالته تماما ؟ شكرا مقدما يا شباب ، كريج.

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

المحلول

أنا ذاهب لنفترض أنك تسأل عن winforms ، أنا لا أعرف عن WPF.

إذا كنت ترغب فقط في إخفاء صورة غزة ، يمكنك تعيين ShowImageMargin و ShowCheckMargin خصائص كاذبة.ومع ذلك ، لن تكون قادرة على عرض الصور على عناصر القائمة الخاصة بك.

ويندوز إكس بي على الأقل ، ووضع RenderMode الخاصية من القائمة المنسدلة إلى ToolStripRenderMode.System سوف أعطيك قائمة من دون أي صورة الهامش الديكور ؛ على الرغم من أنه قد لا تتطابق مع النمط المرئي من التطبيق الخاص بك.

إذا قمت بتعيين BackColor لكل من عناصر القائمة الخاصة بك ، صورة الهامش سوف تحجب.

لإخفاء صورة الهامش دون تغيير النمط البصري من القائمة المنسدلة, سوف تحتاج إلى إنشاء عرض فارغ OnRenderImageMargin وظيفة مثل:

class MyRenderer : ToolStripProfessionalRenderer
{
    protected virtual void OnRenderImageMargin(ToolStripRenderEventArgs e)
    {
        // do nothing
    }
}

ثم تعيين القائمة المنسدلة هو Renderer مكان الإقامة إلى مثيل جديد من العارض الدرجة.يمكنك تغيير لون الصورة الهامش بطريقة مماثلة عن طريق تعديل العارض هو ColorTable.

ولكن قبل أن تفعل أي من تلك ، اسأل نفسك:

  • هل هناك سهولة الاستخدام فائدة تغيير واجهة شيء أقل مألوفا ؟
  • إذا كان هناك هو هذا فائدة أكبر من فائدة حفظ التعليمات البرمجية الخاصة بك بسيطة حتى تتمكن من الاستجابة بسرعة إلى المستخدم ردود الفعل ؟

الجواب على السؤال الأول هو عادة "لا".

نصائح أخرى

ويمكنك تحقيق هذه المشكلة عن طريق إنشاء فئة فرعية من ToolStripRenderer وتجاوز أساليب التقديم المناسبة. انظر MSDN للحصول على أمثلة.

وأنا على افتراض كنت تبحث عن حل WinForms عناصر. لبرنامج الأغذية العالمي / XAML الحل هو بالطبع مختلفة تماما، ويمكن تحقيق ذلك عن طريق تغيير القوالب السيطرة.

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