يمكنك إيقاف تشغيل الأنماط البصرية / Theming لمجرد عنصر تحكم Windows واحد؟

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

سؤال

يستخدم تطبيق Windows Forms الخاص بي الخط القياسي التالي من التعليمات البرمجية بحيث يتم تمكين أنماط البصرية (Theming) للتطبيق بأكمله ...

Application.EnableVisualStyles();

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

FYI: كما يحدث، أريد إزالة السموم من مثيل DatetimePicker، إذا لم يكن الجواب العام باستثناء DateTimeMepicker، فسيكون ذلك جيدا بما فيه الكفاية. أنا سعيد لاستخدام منصة استدعاء إذا كان الحل ينطوي على اللعب مع التحكم في أدنى مستوى.

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

المحلول

يبدو أنه يمكنك استخدام SetWindowTheMe على عنصر تحكم:

[DllImport("uxtheme", ExactSpelling = true, CharSet = CharSet.Unicode)]
public extern static Int32 SetWindowTheme (IntPtr hWnd, 
              String textSubAppName, String textSubIdList);

yourControl.FlatStyle = FlatStyle.System;
SetWindowTheme(yourControl.Handle, "", "");

المفاتيح الأصلية

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