C# 在Windows8中处理字体
我在想,如果微软为平板电脑和个人电脑制作一个操作系统——Windows8。那么必须有一种方法来控制字体大小。示例i有一个带有4列的主网格:C# 在Windows8中处理字体,c#,wpf,xaml,windows-8,windows-8.1,C#,Wpf,Xaml,Windows 8,Windows 8.1,我在想,如果微软为平板电脑和个人电脑制作一个操作系统——Windows8。那么必须有一种方法来控制字体大小。示例i有一个带有4列的主网格: <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}"> <Grid.ColumnDefinitions> <ColumnDefinition/> <ColumnDefinition/>
<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>
2) 有没有一种方法可以让当前的视图框有效,这样我就可以用最少的资源找到并应用于其他视图
3) FontStretch=属性的作用是什么我看不出有什么不同
4) 还有其他处理字体大小的方法吗?您的前两个结论(“在小型设备上看起来像这样:”,“在大型设备上像这样:”)是错误的。文本大小仅在您看来有所不同,因为您的模拟器是按比例缩放的。(请参见两个屏幕截图如何具有相同的宽度) 在现实世界的设备上,文本的大小将是相同的(如果以英寸为单位)
如果您想拥有相同的屏幕大小(以屏幕面积的百分比衡量),那么您可能希望将整个页面包装在一个视图框中。您的前两个结论(“在小型设备上看起来像这样:”,“在大型设备上像这样:”)是错误的。文本大小仅在您看来有所不同,因为您的模拟器是按比例缩放的。(请参见两个屏幕截图如何具有相同的宽度) 在现实世界的设备上,文本的大小将是相同的(如果以英寸为单位) 如果希望具有相同的屏幕大小(以屏幕面积的百分比衡量),则可能需要将整个页面包装在一个视图框中
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
}