【问题标题】:WPF/XAML doesn't look like system themeWPF/XAML 看起来不像系统主题
【发布时间】:2021-12-09 07:44:25
【问题描述】:

我希望 WPF 的默认项目使用确切的系统主题,但 WPF 的默认主题看起来有点类似于 Windows 10,但不完全一样。如果我有我的意见,那就太丑了。我的问题是 - 如何让 WPF 遵循系统主题?

下面的屏幕截图在 Windows 11 中运行。它只是一个使用 File > New Project > WPF Application 的默认项目

此屏幕截图来自一些随机的 Visual Studio 菜单。显然,这些按钮看起来大不相同。

【问题讨论】:

  • 在win7上运行也要看起来像win10吗?
  • @LeiYang 不,我希望它们看起来像他们正在运行的任何版本的 Windows。
  • 这很有趣。但我听说 wpf 是独立于设备的......
  • 为什么你认为VS使用默认主题?为什么你认为其他应用使用默认主题?
  • @Rekshino 因为当我将系统从 Windows 10 更新到 Windows 11 时,以前看起来像 Windows 10 的所有应用程序现在看起来都像 Windows 11,但没有更新任何应用程序......

标签: c# wpf


【解决方案1】:

我希望 WPF 的默认项目使用确切的系统主题...

恐怕你的期望是错误的。 Windows 11 的默认 WPF 模板尚未更新,我强烈怀疑它们是否会更新。

如果您想在您的 Windows 应用程序中获得现代 UI 体验,我建议您考虑使用 WinUI (3)。它是下一代 Windows 原生 UI 层,包括完全信任的桌面应用程序。

【讨论】:

  • 老实说 ((WINDOWS)) 演示文稿基础默认不遵循 Windows 外观和感觉似乎是一个糟糕的决定,我什至从未考虑过。也许他们最终会用 WinUI 解决问题。
  • 不仅没有针对 Windows 11 和 10 进行更新,而且已经与 Windows 8 不匹配。我有一个更大的应用程序,并使用了几个特定于操作系统的主题来尝试适应环境.但是很难重新设置 WPF 控件的主题。他们允许这样做,但它会导致大量工作。因此,它为此功能使用了糟糕的设计。无论 Windows 版本如何,您最好告别原生主题并改用其他(现代)主题。
【解决方案2】:

我认为最接近这一点的是使用ModernWPF

这基本上是 WinUI 到 WPF 的一个端口,但直到 WinUI 2.6 微软引入了 Windows 11 样式。该项目目前已为 Windows 11 样式记录了未解决的问题,但它是否会很快获得对这些样式的支持仍悬而未决。

【讨论】:

    【解决方案3】:

    我无法回答你的问题,但我怀疑你只是想让外表更有吸引力。

    为此,您可以使用样式库。例如这里。我自己将它用于应用程序。非常容易学习:

    https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit

    还有这里。我没用过,但看起来很有趣:

    https://microsoft.github.io/microsoft-ui-xaml/

    【讨论】:

      【解决方案4】:

      有一个用于 WPF 的 WinUI 3 端口,名为 WPFUI。它需要一些简单的步骤来使您的 WPF 应用程序现代化并使其看起来像 Windows 11 新 UI(与 XAML Island 不同,您必须执行数十个步骤并且仍然需要更改您的 UI 代码并在解决方案中创建另一个项目)

      【讨论】:

        猜你喜欢
        • 2018-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-22
        • 2012-08-24
        • 1970-01-01
        • 2012-11-15
        • 2011-09-15
        相关资源
        最近更新 更多