كيف توفر فئة التحكم ، القيم الافتراضية للألوان الخلفية والخط؟
-
23-09-2019 - |
سؤال
أعلم أن نموذج المكون يشير إلى ما إذا كانت خاصية لها قيمة افتراضية أم لا ، عن طريق uSserializeValue طريقة PropertyDescriptor.
نوافذ الأساس Control
الفصل ، لديه بعض الخصائص مثل التنبؤ ، الألوان الخلفية والخط, ، هذا الإعدادات الافتراضية لنفس قيمة الوالد ، لكنني لم أجد أي شيء TypeDescriptor
أو PropertyDescriptor
التي توفر هذه القيم الافتراضية. لا تقوم فئة التحكم بتطبيق IcustomTypedescriptor ولا تحتوي على typedescriptionproviderattribute.
كيف تشير فئة التحكم إلى أن هذه الخصائص يجب أن يتم تسلسلها أم لا؟ أين يوفر PropertyDescriptors لهذه الخصائص ؟؟
شكرًا!!!
المحلول
ليس لديهم قيم افتراضية. هذه الخصائص هي الخصائص "المحيطة". يكتشف فئة التحكم أن مهمة الممتلكات قد حدثت لهم. إذا لم يحدث ذلك أبدًا ، فإنه يستخدم الخاصية المقابلة من الوالد. وهو أمر لطيف ، فهو يضمن استخدام أدوات التحكم في الأطفال نفس الألوان وخط الحاوية.
هناك طريقة antserializeforeColor () في فئة التحكم. إنه داخلي ولا يمكن تجاوزه بواسطة رمز المستخدم. نفس الشيء بالنسبة للخصائص الأخرى. احصل على نظرة مع العاكس أو مصدر مرجع .NET.
ال مكتبة MSDN يوثقهم مثل هذا:
تستخدم أدوات التحكم في Windows خصائص المحيطة بحيث يمكن أن تظهر ضوابط الأطفال مثل البيئة المحيطة بها. الخاصية المحيطة هي خاصية تحكم ، إذا لم يتم تعيينها ، يتم استردادها من عنصر التحكم الأصل. إذا لم يكن لدى عنصر التحكم أحد الوالدين ، ولم يتم تعيين الخاصية ، فإن التحكم يحاول تحديد قيمة الخاصية المحيطة من خلال خاصية الموقع. إذا لم يتم تحديد عنصر التحكم ، إذا لم يدعم الموقع الخصائص المحيطة ، أو إذا لم يتم تعيين الخاصية على AmbientProperties ، فإن التحكم يستخدم قيمه الافتراضية الخاصة به. عادةً ما تمثل خاصية المحيطة سمة من سمات السيطرة ، مثل الألوان الخلفية ، التي يتم توصيلها لسيطرة الطفل. على سبيل المثال ، سيكون للزر نفس الألوان الخلفية مثل شكله الأصل بشكل افتراضي. تشمل الخصائص المحيطة التي توفرها فئة التحكم: المؤشر والخط واللوحات الخلفية والنبرة و righttoleft.