【问题标题】:C# WPF VS2017 - Forcing Aero themeC# WPF VS2017 - 强制 Aero 主题
【发布时间】:2018-01-28 11:05:12
【问题描述】:

我正在尝试解决我在 Windows 7 上使用 VS2015 编写的 WPF 应用程序(屏幕保护程序)的渲染问题。

在 Windows 10 上,配置窗口看起来完全不同,更重要的是,由于它在 Windows 10 中的呈现方式,它几乎毫无用处。

这里有一些截图。一、windows 7

和 Windows 10

虽然有很多细微差别,但我希望如此,但不可原谅的是着色和切断控件。复选框被选中,你无法分辨。单选按钮被选中,你无法分辨。你甚至看不到底部控件。太垃圾了。

我做了一些研究,发现我可以覆盖主题,强制使用 Aero。我不知道这是否能解决我的问题,但我无法让它发挥作用。

根据我的研究,如果我将以下内容添加到 App.xaml,它可能会解决问题。

<Application.Resources>
     <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
     <ResourceDictionary Source="pack://application:,,,/WPFToolkit;component/Themes/Aero.NormalColor.xaml" />
</Application.Resources>

但是,这样做会在 VS2017 中给我一个警告:

“资源”属性只能设置一次。

所以,我什至无法测试它。我还没有找到解决这个问题的方法。如何让它发挥作用?

--------- 更新 1 ----------

在 cmets 的帮助下,我得到了:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/PresentationFramework.Aero;component/themes/Aero.NormalColor.xaml" />
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

但是,现在应用程序根本无法运行。

您的应用已进入中断状态,但没有可显示的代码,因为所有线程都在执行外部代码(通常是系统或框架代码)。

原文来源GitHub

【问题讨论】:

标签: c# wpf windows-10 visual-studio-2017 aero


【解决方案1】:

您正在硬编码配置窗口的大小。

 Height="358" Width="300"

这不会在用户更改 DPI 缩放比例的现代操作系统上正确呈现。

在这种情况下,使用 Window SizeToContent 属性可能会更好

SizeToContent="WidthAndHeight"

SizeToContent documentation

【讨论】:

  • 如果您对如何克服颜色问题有一些想法,我会接受它作为答案。它会使尝试覆盖主题变得不必要。
猜你喜欢
  • 1970-01-01
  • 2011-01-12
  • 2017-05-11
  • 2010-12-30
  • 1970-01-01
  • 1970-01-01
  • 2014-07-11
  • 1970-01-01
  • 2017-07-06
相关资源
最近更新 更多