我在想,如果微软为平板电脑和个人电脑制作了一个操作系统——Windows 8。那么就必须有一种方法来控制 FontSize。示例我有一个有 4 列的主网格:
<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)任何其他方式来处理字体大小?