【问题标题】:WPF Context Menu is not in Windows 10 StyleWPF 上下文菜单不是 Windows 10 样式
【发布时间】:2017-04-21 13:09:47
【问题描述】:

我正在开发一个简单的 WPF 应用程序。我不使用任何自定义样式。所以它在 Windows 7 和 10 上看起来很原生。但是今天我注意到上下文菜单在 Windows 10 上看起来很奇怪:

在 7-Zip 等其他应用程序中,上下文菜单看起来很原生:

如何在不破坏 Windows 7 原生外观的情况下将平面 Window 10 样式应用于上下文菜单?

澄清:我的上下文菜单在左侧有一条 3D 分割线,在选择项周围有一个边框。在 7-Zip、Explorer 和其他应用程序中,既没有 3D 分割线,也没有围绕选择的边框。我习惯 WPF 应用程序看起来不像 Java Swing 作为原生 Windows 应用程序。

【问题讨论】:

    标签: c# .net wpf


    【解决方案1】:

    但今天我注意到上下文菜单在 Windows 10 上看起来很奇怪:

    奇怪与否,这实际上是默认 WPF ContextMenu 在 Windows 10 上的样子。

    如何在不破坏 Windows 7 原生外观的情况下将平面 Window 10 样式应用于上下文菜单?

    您需要自己定义这种“平面 Window 10 样式”。 MSDN 上有一个如何创建自定义 ContextMenu 样式的示例,可以帮助您入门:https://msdn.microsoft.com/en-us/library/ms744758%28v=vs.110%29.aspx。没有快速解决办法。

    【讨论】:

      【解决方案2】:

      您被快捷键(>、Enter、Ctrl + PgDn 等)挂断了。您的应用程序没有分配任何内容,而 7-zip 正在 分配它们。或者,也许,大纲。不要被甩掉。一切都在按应有的方式进行。

      但是我们不要忽视这样一个事实,如果 7-zip 不是用 WPF 编写的,你就不能期望得到同样的结果。

      【讨论】:

      • 我认为他的意思是菜单项突出显示的区别
      • 这是可能的。但是,我们不能假设 7-zip 用来渲染它们的机制与 OP 的代码完全相同。如果 7-zip 不是用 WPF 编写的,这将是最明显的区别—​​—底层代码不同。
      • @codenoir:我想这应该是答案 - 一个更一般的解释 WPF 中的选择如何以及为什么工作(因此,必然看起来)与任何本机 Windows GUI 工具包中的选择有些不同。
      • @O.R.Mapper 已注意到。
      • @codenoir:对不起,我认为目前的解释还是有点太单薄了,没用。我在某处有一个关于选择的链接,以后可能会去寻找它。问题在于,通常的情况是,对于 Windows 中任何两个常用的 GUI 工具包,您可以通常期望得到相同的结果,因为这些 GUI 工具包大多只是Windows 的本机 GUI API。特别是 WPF 在这方面是一个例外,因为它自己绘制所有内容。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多