【问题标题】:Why doesn't WPF show Windows 8 style buttons in Windows 8为什么 WPF 在 Windows 8 中不显示 Windows 8 样式的按钮
【发布时间】:2013-01-07 19:18:22
【问题描述】:

这是一个 Windows 8 风格的按钮:

这是 .NET 4.5 WPF 应用程序中的一个按钮:

任何想法为什么 WPF 不显示本机 Windows 8 样式按钮?有没有办法解决这个问题?

【问题讨论】:

标签: c# .net wpf vb.net xaml


【解决方案1】:

您可以做的是使用来自HERE 的自定义 WPF 样式。

以下是应用于同一 WPF 应用程序的多个状态的样式的屏幕截图。顶部明显是 Aero 主题,底部是新应用的样式。

这是XAML的链接。

【讨论】:

  • 这些是一些非常不错的样式。
  • @RudiVisser 感谢您创建它们。 :)
  • 这些样式不适用于其他主题。颜色是硬编码的,而不是使用 SystemColors
  • XAML 链接已损坏
  • @GuyGodin:颜色无法更改,因此可以保持固定不变。但它们仍然不准确,我需要将它们全部从真实的 Windows 8.1 屏幕截图中更改。而且 RadioButton 和 CheckBox 也需要一些修复,这个主题没有包含。
【解决方案2】:

WPF 不使用任何本机 Windows 控件 - 它为不同的 Windows 版本提供了自己的控件和样式。在 Windows 7 上,您可以找到以下程序集

PresentationFramework.Aero.dll
PresentationFramework.Classic.dll
PresentationFramework.Luna.dll
PresentationFramework.Royale.dll

我猜想有一个新的适用于 Windows 8。由于 WPF 不是基于本机控件构建的,因此可以在 Windows 7 上拥有 XP 风格的 WPF 应用程序,而在 Windows XP 上拥有 Windows 7 风格的应用程序。

如果您想比 WPF 提供的开箱即用更好地匹配原生 Windows 8 UI,则必须创建自己的样式 - 可能基于 WPF 提供的样式。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-08-11
    • 1970-01-01
    • 2012-07-29
    • 1970-01-01
    • 1970-01-01
    • 2012-12-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多