C# 屏幕变小时增加字体大小

C# 屏幕变小时增加字体大小,c#,xaml,fonts,win-universal-app,C#,Xaml,Fonts,Win Universal App,我的XAML中有这个 <Grid> <Grid.ColumnDefinitions> <ColumnDefinition Width="0.4*"/> <ColumnDefinition Width="*"/> <ColumnDefinition Width="0.4*"/> </Grid.ColumnDefinitions> <Grid

我的
XAML中有这个

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="0.4*"/>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="0.4*"/>
    </Grid.ColumnDefinitions>

        <Grid Grid.Column="1">
        <Grid.RowDefinitions>
            <RowDefinition Height="0.5*"/>
            <RowDefinition Height="*"/>
            <RowDefinition Height="0.5*"/>
        </Grid.RowDefinitions>

        <Grid Grid.Row="1" >
            <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="Hello there and welcome!" />
        </Grid>
        </Grid>
</Grid>

我面临的问题是
TextBlock
在所有屏幕大小上都保持不变
FontSize
,因此当屏幕很小时,它很容易阅读,但随着屏幕变大,它就更难阅读


如何将其保持在一个好的
FontSize
,以便从所有屏幕大小都可以读取?有没有办法随着屏幕的扩展而增加字体大小?

您可以将其包装在ViewBox中

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation">
    <Viewbox>
        <TextBlock HorizontalAlignment="Center" TextWrapping="Wrap" Text="Hello there and welcome!" />
    </Viewbox>
</Window>


WPF字体支持DPI,因此无论分辨率如何,它们的大小都相同。一个可视框可以让你把所有的东西缩小到合适的尺寸,尽管根据我的经验,它通常会导致所有东西看起来都太小,特别是如果它是在桌面上设计的,然后在笔记本上查看的话。我自己做的是创建两个主题,并根据物理显示大小(即DPI和分辨率的乘积)选择合适的主题。不确定这是否是最好的解决方案,但到目前为止,它似乎正在发挥作用。

我已经在一个
视图框中包装好了。在纵向模式下,字体大小小得离谱,屏幕大得离谱。@HansPassant好笑:|只是好奇而已。你使用的字体大小和大屏幕的设备是什么?我没有设置字体大小,因为它是固定的。屏幕是标准的仿真器,当它最小化时,字体大小保持不变,而不是变大以清晰可读的格式显示@JustinXLI我会注意到问题是关于通用应用程序,而不是WPF。我不知道这对你的回答是否重要。