您可以仅关闭单个窗口控件的视觉样式/主题吗?

发布于 2024-07-14 08:06:24 字数 357 浏览 9 评论 0原文

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

Application.EnableVisualStyles();

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

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

My Windows Forms application uses the following standard line of code so that visual styles (theming) is enabled for the entire application...

Application.EnableVisualStyles();

...which works just fine, all the controls have a themed appearance instead of the flat battleship gray that you would get otherwise. But I need to turn off visual styles for just a single control instance. I cannot remove the above line because then I would lose theming from all the controls. Is it possible to remove theming from a single control instance?

FYI: As it happens I want to remove theming from a DateTimePicker instance so if the general answer is no except for the DateTimePicker then that would be good enough. I am happy to use platform invoke if the solution involves playing with the control at the lowest level.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2024-07-21 08:06:24

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

原始 CodeProject 文章

It looks like you can use SetWindowTheme on a control:

[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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文