سوف تحكم مرسومة العرف لا تجعل الضوابط وراء ذلك على الرغم من انها شفافة
-
05-07-2019 - |
سؤال
وأنا أكتب حاليا عنصر تحكم علامة التبويب مصمم خصيصا. أنا خلقت السيطرة بلدي بدلا من مالك رسم TabControl علبة لأنني أحسب أنه سيكون أسرع وأكثر مرونة. بلدي أساليب تحكم علامة التبويب نفسها بعد عنصر تحكم علامة التبويب VS2008. وهذا هو، عند تحديد علامة تبويب، جزءا من هذا التبويب في جبهة أخرى، علامات غير محددة.
وبلدي تحكم علامة التبويب يتكون من لوحة تحتوي على كل من بلدي الأشياء TabButton التي هي علامات الفعلية نفسها. لقد تعيين TabButton أن تكون شفافة مثل ذلك:
public TabButton()
{
...
SetStyle(ControlStyles.SupportsTransparentBackColor | ControlStyles.UserPaint | ControlStyles.AllPaintingInWmPaint | ControlStyles.OptimizedDoubleBuffer, true);
UpdateStyles();
this.BackColor = Color.Transparent;
}
ولكن، عندما يتم تحديد علامة التبويب وأمام علامة تبويب أخرى، لا يتم تقديم جزء من علامة التبويب غير محددة التي يجب أن تظهر وراء جزء من علامة التبويب المحددة. انها اللون SystemColors.Control
القياسي الذي يملأ ما تبقى من المستطيل لقطة لالزر المحدد.
وكيف يمكنني تحقيق الشفافية المناسبة في التحكم المخصص الخاص بي؟
وأيضا: TabButton يرث التحكم، لهذا السبب كنت بحاجة إلى استخدام SetStyle
من أجل استخدام الشفافية
واريك سميث
المحلول
وإلقاء نظرة على هذا: <لأ href = "http://saftsack.fs.uni-bayreuth.de/~dun3/archives/creating-a-transparent-panel-in-net/108.html" يختلط = "نوفولو noreferrer"> http://saftsack.fs.uni-bayreuth.de/~dun3/archives/creating-a-transparent-panel-in-net/108.html
وآخر ما كان في نماذج Windows .NET أنه لم يكن واضحا تماما أن كنت في حاجة للقيام ببعض هذه الخارقة الزائف للحصول على الشفافية في العمل. أنا لست متأكدا مما إذا كان تغييره في آخر 3 سنوات ~، لكنني أتذكر يفعل شيئا مثل هذا. سوف أحاول صراحة لا رسم الخلفية أولا.