处理多个屏幕尺寸的Windows 8应用程序的字体大小

时间:2012-10-05 14:03:34

标签: windows-8 microsoft-metro

我有一个字体大小为14的文本 在较小的屏幕上,它是可见的,但在较大的屏幕上,它变得更小 我该如何处理?
在Android上我们有SP根据屏幕调整字体大小 在Windows 8中有类似的东西吗?

2 个答案:

答案 0 :(得分:1)

我假设您正在使用XAML?

所以,你应该从这样的事情开始:

<Page.Resources>
    <x:Double x:Key="MyFontSize" />
    <Style TargetType="TextBlock" x:Name="StandardText">
        <Setter Property="FontSize" Value="{StaticResource MyFontSize}" />
    </Style>
</Page.Resources>

<TextBlock Style="{StaticResource StandardText}">Hello World</TextBlock>

然后在你的代码背后有这样的东西:

Double _FontSize;
if (Windows.UI.ViewManagement.ApplicationView.Value
    == Windows.UI.ViewManagement.ApplicationViewState.FullScreenPortrait)
{
    // based on portrait
    if (this.RenderSize.Height > 2000)
        _FontSize = 30;
    if (this.RenderSize.Height > 1000)
        _FontSize = 20;
    else
        _FontSize = 10;
}
else
{
    // based on landscape
    if (this.RenderSize.Height > 1500)
        _FontSize = 30;
    if (this.RenderSize.Height > 1000)
        _FontSize = 20;
    else
        _FontSize = 10;
}
this.Resources["MyFontSize"] = _FontSize;

除非用户更换您的监视器,否则无论您在应用程序加载时检测到什么都将保持不变!

答案 1 :(得分:1)

我正在研究这个问题。 我开始了解两件不同的事情。 一个是View Box,另一个是逻辑DPI。