WPF:Windows 7与Windows 10外观

我在Windows 10设备和Windows 7设备之间出现恼人的外观差异。

我在Window元素中直接使用WindowStyle="None"DockPanel

我没有得到的是为什么还有一个边界? 为什么button,文本框,combobox等的边框是圆形的?

看来这与Aero有关。 有没有办法阻止我的应用程序使用Aero? 我假设有另一个与Windows 10相关的表示框架,但不知道它是什么强制它。

BorderBrush会是解决这个问题的最简单的方法吗?

 <Window x:Class="CBD.Presentation.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:CBD.Presentation" Title="CBD" Height="760" Width="944" WindowStartupLocation="CenterScreen" WindowStyle="None" SizeChanged="Window_SizeChanged" MinWidth="944" MinHeight="760" Icon="favicon.ico"> <DockPanel x:Name="Root_Window" Background="Black"> <!--Application stuff here --> </DockPanel> </Window> 

Windows 7显示: Windows 7显示

Windows 10显示器:

Windows 10显示器

一切仍然正常运作,但一些文本框和button的设置方式,部分字母丢失。

Solutions Collecting From Web of "WPF:Windows 7与Windows 10外观"

我认为这些都是很多人在开始定制应用程序风格时偶然会遇到的问题。 这两个问题都有一些很好的捷径,比如使用现有的WPF风格/库:

我看到几个常见的窗口和样式库:

  • MahApps.Metro是一个很好的图书馆,我用了很长一段时间来获得清洁的窗口和界面(尤其是一些客户喜欢的“黑暗”主题)。
  • 现代用户界面 一点个人的经验,但它是相似的,它有更多的现代窗口设计,以及一个大的风格集。 我见过它经常使用。
  • 极乐世界 再次,没有太多的经验,但似乎活跃。 我没有看到它和其他两个一样多。

当然,这些包括很多其他地铁主题。 还有其他的主题包,我发现XAML工具箱中的材质设计非常棒,如果客户想要的是现代设计的前沿(也可以从Google获得认可)。

它看起来像你从头开始你的风格,但上述可能仍然是有用的,你只是用于Windows。 如果你想自己去看看,这里有很多的答案。

正如在注释中所讨论的那样,对于弯曲的拐角,这是WPF在不同操作系统上默认行为的结果。 它试图选择一个默认的风格,以融入当前的操作系统。 对于大多数仅使用默认主题的应用程序而言,这并不常见。

当你自己设计所有的样式时,它确实会对你手动配置的东西造成破坏,因为一些与你设置的主题相配的属性可能是不同的 – 比如圆角。

有两个选项。

  1. 显式设置所有的属性 ,所以它看起来完全是你想要的。 这样做意味着即使“基础”主题发生变化,仍然看起来不错。 上面这些图书馆是如何做的 – 他们完全定义了一种风格。 问题是你将不得不手动测试不同的主题,这是一个工作。
  2. 手动设置基本主题 。 (也可用于选项1中的测试!)您可以手动覆盖应用程序使用的主题,而不是像使用其他自定义主题一样使用操作系统的默认主题,也可以使用自己的主题:
 <App.Resources> <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/> </App.Resources> 

出于某种原因,上述内容不会显示为代码,除非包含在引号中。