PresentationFramework Aero、Aero2 或 AeroLite
Posted
技术标签:
【中文标题】PresentationFramework Aero、Aero2 或 AeroLite【英文标题】:PresentationFramework Aero, Aero2 or 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 中,我使用哪个来获得一致的外观和感觉,包括内边距和边距。
【问题讨论】:
【参考方案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以上是关于PresentationFramework Aero、Aero2 或 AeroLite的主要内容,如果未能解决你的问题,请参考以下文章
无法加载 PresentationFramework DLL
PresentationFramework Aero、Aero2 或 AeroLite
R语言Logistic回归模型案例基于AER包的affair数据分析
无法从程序集 PresentationFramework 加载类型“System.Windows.Controls.Primitives.MultiSelector”
PresentationFramework.dll 中 System.NullReference 类型异常的第一次机会异常?