我想要一个基于用户屏幕分辨率的默认字体大小。 即如果屏幕工作区宽度小于1024,则使用字体大小10,否则使用字体大小14。 我目前正在使用“SystemParameters.WorkArea.Width”来确定宽度
我可以设置一个全局字体大小,并有一个转换器来返回字体大小,但我真的很难弄清楚如何使它成功。即。当窗口大小改变时,让它检查字体大小应该是什么
<Window.Resources>
<local:SetFontSize x:Key="myConverter" />
<Style TargetType="{x:Type Control}" x:Key="baseStyle">
<Setter Property="FontSize" Value="14" />
<Setter Property="FontFamily" Value="Calibri" />
</Window.Resources>
我找到了下面的事件,但似乎无法将两者联系在一起(虽然我可能会采用这种错误的方式)
<Window.Triggers>
<EventTrigger RoutedEvent="SizeChanged">
</EventTrigger>
</Window.Triggers>
答案 0 :(得分:2)
为什么你还想要这个呢? Wpf使用抽象坐标,并使用当前的Monitor DPI和分辨率将它们转换为像素。因此,您的应用程序应自动扩展为在每个屏幕上看起来相似。 我会建议,使用弹性布局,滚动条等。使您的应用程序可以在较小的屏幕上使用。
答案 1 :(得分:2)
请记住,WPF应用程序是“DPI感知”且字体大小不是像素 - 所以如果用户使用不同的DPI设置来增加字体大小,它将自动反映在您的WPF应用程序中。希望用户可以按原样使用DPI设置吗?
(如果其他应用使用字体大小10而且它太小,而不是重写该应用,他们可能会调整他们的DPI - 如果没有其他应用使用字体大小10,它可能对所有用户来说都太小了)
我意识到这是一个无法回答的问题,但牺牲设计并为不能调整DPI设置的人进行黑客攻击是一种耻辱?我太消极了吗? :)