2009-02-13 26 views
0

我的Windows窗體應用程序使用下列標準的代碼行,使視覺樣式(主題化)爲整個應用程序啓用...您是否可以關閉視覺樣式/主題僅用於單個窗口控件?

Application.EnableVisualStyles(); 

...這工作得很好,所有的控件都有一個主題外觀,而不是平坦的戰艦灰色,否則你會得到。但是我只需要爲單個控件實例關閉視覺樣式。我無法刪除上面的這一行,因爲那樣我就會失去所有控件的主題。是否可以從單個控件實例中刪除主題?

供參考:因爲它發生我想從DateTimePicker實例中刪除主題,所以如果一般答案是除了DateTimePicker沒有,那麼這將足夠好。如果解決方案涉及到最低級別的控件,我很樂意使用平臺調用。

回答

5

它看起來像您可以在控制使用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, "", ""); 

Original CodeProject Article

相關問題