您可以关闭视觉样式/主题化的只是一个单一的窗口控制?
-
23-08-2019 - |
题
我的Windows窗体应用程序使用以下标准的代码行,使得视觉样式(主题化)为整个应用程序启用...
Application.EnableVisualStyles();
...这工作得很好,所有的控件都有一个主题的外观,而不是平的战舰灰色,你会得到其他。但我需要关闭视觉样式只是一个单一的控制实例。我不能删除上面的行,因为这样我会从所有控件失去主题化。是否有可能从单一的控制实例中删除主题化?
FYI:碰巧我想,所以如果一般的答案是否定的除外的DateTimePicker那将是不够好,从一个DateTimePicker要删除的实例主题化。我很高兴,如果解决方案涉及在最低水平控制播放使用平台调用。
解决方案
它看起来像您可以在控制使用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, "", "");
不隶属于 StackOverflow