在Windows 8中处理字体

起司

我在考虑微软是否为平板电脑和PC制作了一个操作系统-Windows8。那么必须有一种控制FontSize的方法。示例我有一个包含4列的Main网格:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid>
        <TextBlock FontSize="20" Text="First Title"/>
    </Grid>
    <Grid Grid.Column="1">
        <TextBlock Text="Second Longer In Characters Title" FontSize="20"/>
    </Grid>
</Grid>

在小型设备上,它看起来像这样:

在此处输入图片说明

在更大的设备上,如下所示:

在此处输入图片说明

不可读!

我已经尝试过ViewBox解决方案,但是

由于字符数的原因,相同的FontSizes现在具有不同的大小

例子:

在此处输入图片说明

然后我试图将所有页面放在一个ViewBox中:

在此处输入图片说明

这也不是一件好事,因为它破坏了我所有的星形网格。

因此,问题是:

1)当我更改FontSize时,有没有一种计算TextBlock宽度的方法?所以我可以做类似的事情:

foreach (TextBlock on a page)
{
  //Find the textblock with biggest amount of characters
}
do
{
     FoundTextBlock.FontSize=FontSize+1;
}
while (FoundTextBlock.WidthInPixel fits 200px)
foreach (TextBlock on a page)
{
  //Set all text blocks the same FontSize
}

2)有没有一种方法可以使ViewBoxes当前处于可伸缩状态,因此我可以最少地找到并应用于其他对象?

3)FontStretch =属性有什么作用?-我看不出区别吗?

4)还有其他处理字体大小的方法吗?

HDW生产

您的前两个结论(“在小型设备上看起来像这样:”,“在较大的设备上看起来像这样:”)是错误的。文本大小只对您看起来有所不同,因为模拟器已缩放。(查看两个屏幕截图的宽度如何相同)

在现实世界中的设备上,文本的大小将相同(如果以英寸为单位)。

如果要具有相同的屏幕尺寸(以屏幕面积的百分比来衡量),则可能需要将整个页面包装在一个Viewbox中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章