我在 Windows 10 设备和 Windows 7 设备之间有恼人的外观差异。
我正在我的元素中直接使用WindowStyle="None"
和。DockPanel
Window
我不明白的是为什么还有边界?为什么按钮、文本框、组合框等的边框是圆形的?
这似乎与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>
Run Code Online (Sandbox Code Playgroud)
Windows 7 显示:
Windows 10 显示:
一切仍然正常运行,但某些文本框和按钮的设置方式,缺少部分字母。
我认为当他们真正开始自定义应用程序的样式时,很多人都会偶然发现这两种情况。这两个问题都有一些完善的快捷方式,例如使用现有的 WPF 样式/库:
我看到了一些常见的 Window 和样式库:
当然,这些包括许多其他地铁主题。还有其他可用的主题包,如果客户想要现代设计(也可以识别,来自谷歌),我发现XAML 工具包中的材料设计很棒。
看起来你是从头开始制作你的风格,但上面的内容可能仍然对你简单地用于窗口有用。如果你想要去它自己有很多用的答案了长时间的讨论在这里。
对于弯角,如评论中所述,这是 WPF 在不同操作系统上的默认行为的结果。它尝试选择默认样式以与当前操作系统最佳融合。对于大多数仅使用默认主题的应用程序,这通常无关紧要。
但是,当您自己设置所有样式时,它确实会对您手动配置的内容造成严重破坏,因为某些与您设置的主题配合良好的属性可能会有所不同 - 例如圆角。
有两个选择。
Run Code Online (Sandbox Code Playgroud)<App.Resources> <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/> </App.Resources>
出于某种原因,除非用引号括起来,否则上述内容不会显示为代码......