根据屏幕大小设置WPF字体大小

h6my8fg2  于 2023-08-07  发布在  其他
关注(0)|答案(3)|浏览(207)

我想有一个默认的字体大小是基于用户的屏幕分辨率。即如果屏幕工作区宽度小于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>

qyyhg6bp

qyyhg6bp1#

你为什么想要这个?Wpf使用抽象坐标,并使用当前的监视器DPI和分辨率将其转换为像素。因此,您的应用程序应该自动缩放,以便在每个屏幕上看起来都相似。我建议,使用弹性布局,滚动条等。使您的应用程序能够在更小的屏幕上使用。

0wi1tuuw

0wi1tuuw2#

请记住,WPF应用程序是“DPI感知”的,字体大小不是以像素为单位-因此,如果用户使用不同的DPI设置来增加字体大小,它将自动反映在您的WPF应用程序中。希望这是一个可能性,为用户使用的DPI设置,因为他们应该?
(If其他应用程序使用字体大小10,它太小了,而不是重写应用程序,他们可能会调整他们的DPI -如果没有其他应用程序使用字体大小10,它可能对所有用户来说都太小了)
我知道这是一个非答案,但这是一个耻辱,牺牲设计,并不得不黑客的东西,为人民谁不会调整他们的DPI设置?我是不是太消极了?:)

hgc7kmma

hgc7kmma3#

将控件放在网格和视图框中。它将在每个分辨率中适合容器。

<Grid Background="White" HorizontalAlignment="Stretch" 
VerticalAlignment="Stretch">
     <Viewbox>
     <TextBox/>
     </Viewbox>
   </Grid>

字符串

相关问题