【问题标题】:PresentationFramework Aero, Aero2 or AeroLitePresentationFramework Aero、Aero2 或 AeroLite
【发布时间】:2016-01-27 12:03:57
【问题描述】:

我想编写一个快速的 WPF 应用程序,但我发现它在 Windows 7 上看起来与 Windows 10 完全不同。所有的填充和边距都搞砸了。我决定添加默认的 PresentationFramework.Aero Windows 7 主题,希望这能解决问题。不过好像也有两个新的选择:

  • PresentationFramework.Aero.dll

在 .NET 4.5 中,Microsoft 引入了两个额外的程序集:

  • PresentationFramework.AeroLite.dll
  • PresentationFramework.Aero2.dll

在 Windows 7、8 和 10 中,我使用哪个来获得一致的外观和感觉,包括内边距和边距。

【问题讨论】:

    标签: c# wpf windows-8 windows-7 windows-10


    【解决方案1】:

    我将旧的 wpf 基础项目升级到 .Net 6,并收到有关不兼容航空版本的警告。我只是删除了 aero 参考,该应用程序能够在 .Net 6 中构建/运行,没有任何警告或问题。

    错误

    警告 MSB3243:无法解决 "PresentationFramework.Aero ...

    【讨论】:

      【解决方案2】:

      WPF 选择由操作系统版本确定的默认主题。这允许应用程序在整个操作系统中具有一致的外观和感觉,而不是每个应用程序定义自己的外观和感觉,从而导致分散的体验。这也允许用户做出某些选择并将它们反映在他们的系统中。当然,这是完全可以覆盖的; WPF 让您可以访问必须使用的每个控件的模板和样式。

      只需在您的应用程序启动事件中添加以下代码(以下代码 showshow 以使用 Aero 主题):

      Uri uri = new Uri(“PresentationFramework.Aero;V3.0.0.0;31bf3856ad364e35;component\\themes/aero.normalcolor.xaml”, UriKind.Relative);
      Resources.MergedDictionaries.Add(Application.LoadComponent(uri) as ResourceDictionary); 
      

      选择您自己的主题并与 App.xaml 中的 MergedDictionary 合并。它为所有操作系统版本创建了独特的外观。

      【讨论】:

      • 为什么投反对票?这个答案很有道理!我在InitializeComponent() 之前复制了这个例子,它改变了“风格”。也许更多关于如何构建 Uri 的解释会很好。
      • 能否请您添加代码,如何检查系统上可用的主题?这可能很有趣link
      猜你喜欢
      • 2022-06-10
      • 2014-07-11
      • 2016-09-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多