0

我的 Windows 窗体应用程序使用以下标准代码行,以便为整个应用程序启用视觉样式(主题)...

Application.EnableVisualStyles();

...效果很好,所有控件都具有主题外观,而不是您会得到的平坦的战舰灰色。但我只需要关闭单个控件实例的视觉样式。我无法删除上面的行,因为那样我会失去所有控件的主题。是否可以从单个控件实例中删除主题?

仅供参考:碰巧我想从 DateTimePicker 实例中删除主题,所以如果除了 DateTimePicker 之外一般答案是否定的,那么这就足够了。如果解决方案涉及在最低级别使用控件,我很乐意使用平台调用。

4

1 回答 1

6

看起来您可以在控件上使用 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, "", "");

原始代码项目文章

于 2009-02-13T00:50:24.123 回答