سوف تحكم مرسومة العرف لا تجعل الضوابط وراء ذلك على الرغم من انها شفافة

StackOverflow https://stackoverflow.com/questions/1605206

سؤال

وأنا أكتب حاليا عنصر تحكم علامة التبويب مصمم خصيصا. أنا خلقت السيطرة بلدي بدلا من مالك رسم 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 سنوات ~، لكنني أتذكر يفعل شيئا مثل هذا. سوف أحاول صراحة لا رسم الخلفية أولا.

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