如何设置 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 [关闭]
Windows 窗体:UI 线程使用 Show() 和 ShowDialog() 流动