如何设置 Windows 窗体标题栏和 UI 使用 Windows 8/10 的平面操作系统主题,而不是 XP/7 纹理外观?

Posted

技术标签:

【中文标题】如何设置 Windows 窗体标题栏和 UI 使用 Windows 8/10 的平面操作系统主题,而不是 XP/7 纹理外观?【英文标题】:How do I set a Windows Forms Title Bar and UI use the flat OS theme of Windows 8/10, not XP/7 textured look? 【发布时间】:2014-12-04 19:14:38 【问题描述】:

我正在更新为 Windows XP 编写的 Visual Basic Windows 窗体应用程序。

我应该设置什么表单属性来告诉 Windows 表单接受默认的 Windows 8 / 10 平面主题?它是每个应用程序的全局设置还是每个表单设置?

我的应用程序的主窗体和一些子窗体在修改后看起来很好。

但是,我的一些子窗体仍然具有 Windows XP/7 的纹理外观:

我 read some posts 指向“EnableVisualStyles = true”。然而,这个问题是询问如何获得 Windows XP 样式,而不是 Win 95/95 样式。我需要澄清一下较新的 Win 8 / 10 主题的设置应该是什么。

【问题讨论】:

那是 MDI 孩子吗?我不认为 MDI 子窗体得到任何 Microsoft 的喜爱。 哇,好收获。是的,失败的是 MDI Child,而有效的不是 child。 LarsTech:我刚刚在该表单上注释掉了 Me.MdiParent = mdiMain 并进行了测试,这确实是问题所在。尽管这不是我想听到的,但它回答了我的问题。如果您发布为真实答案,我会将您标记为正确。 【参考方案1】:

MDI 子表单是一种特殊类型的表单,不被视为 TopLevel 表单,windows 主题仅影响 TopLevel 表单。

Microsoft 一直在反对使用多文档界面(MDI 甚至没有写入 WPF),转而支持选项卡式界面。

【讨论】:

非常感谢。非常感谢额外的细节。 你能提供任何参考/链接吗? @David 您在寻找什么参考资料? MDI 子窗体只是不使用当前的视觉样式。

以上是关于如何设置 Windows 窗体标题栏和 UI 使用 Windows 8/10 的平面操作系统主题,而不是 XP/7 纹理外观?的主要内容,如果未能解决你的问题,请参考以下文章

JetBrains Rider C# | Windows 窗体 UI [关闭]

如何使用 Qt 在同一个 UI 中添加菜单栏和按钮?

Windows 窗体:UI 线程使用 Show() 和 ShowDialog() 流动

如何使用 AutoIt 或 Windows UI 自动化单击应用程序中的按钮

如何正确暂停/延迟 Windows 窗体应用程序

如何在 Windows 窗体应用程序中保存应用程序设置?