我想有一个默认的字体大小是基于用户的屏幕分辨率。即如果屏幕工作区宽度小于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>
型
3条答案
按热度按时间qyyhg6bp1#
你为什么想要这个?Wpf使用抽象坐标,并使用当前的监视器DPI和分辨率将其转换为像素。因此,您的应用程序应该自动缩放,以便在每个屏幕上看起来都相似。我建议,使用弹性布局,滚动条等。使您的应用程序能够在更小的屏幕上使用。
0wi1tuuw2#
请记住,WPF应用程序是“DPI感知”的,字体大小不是以像素为单位-因此,如果用户使用不同的DPI设置来增加字体大小,它将自动反映在您的WPF应用程序中。希望这是一个可能性,为用户使用的DPI设置,因为他们应该?
(If其他应用程序使用字体大小10,它太小了,而不是重写应用程序,他们可能会调整他们的DPI -如果没有其他应用程序使用字体大小10,它可能对所有用户来说都太小了)
我知道这是一个非答案,但这是一个耻辱,牺牲设计,并不得不黑客的东西,为人民谁不会调整他们的DPI设置?我是不是太消极了?:)
hgc7kmma3#
将控件放在网格和视图框中。它将在每个分辨率中适合容器。
字符串