我在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>
Windows 7显示:
Windows 10显示:
一切仍然正常运行,但设置了一些文本框和按钮的方式,缺少部分字母。
答案 0 :(得分:4)
我认为这些都是很多人在真正开始定制应用程序风格时会偶然发现的。这两个问题都有一些完善的快捷方式,例如为WPF使用现有的样式/库:
我看到了一些常见的窗口和样式库:
这些当然包括很多其他Metro主题。还有其他主题包可用,如果客户想要的是现代设计(也可以识别,来自谷歌),我发现Material Design In XAML Toolkit很棒。
看起来你正在从头开始制作自己的风格,但上述内容可能对您只是用于窗口有用。如果你想自己去做,那么就需要与很多答案here进行冗长的讨论。
对于弯曲的角落,正如评论中所讨论的,这是WPF在不同操作系统上的默认行为的结果。它尝试选择默认样式以与当前操作系统最佳地融合。对于大多数仅使用默认主题的应用程序,这并不重要。
当你自己设计一切时,它确实会对你手动配置的东西造成严重破坏,因为一些与你设置的主题配合得很好的属性可能会有所不同 - 比如圆角。
有两种选择。
<App.Resources> <ResourceDictionary Source="/PresentationFramework.Aero, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, ProcessorArchitecture=MSIL;component/themes/aero.normalcolor.xaml"/> </App.Resources>
出于某种原因,除非包含在引号中,否则上述内容不会显示为代码...