如何在WinRT应用程序中获取字体的大小(以像素为单位)?

时间:2013-03-20 04:10:43

标签: c# xaml fonts windows-store-apps pixels

正如标题所述,在.NET 4.5中,我们有一个字体类可以给你像素中的高度,但在WinRT中怎么样?

我可以使用任何API来获取它使用的像素吗?

1 个答案:

答案 0 :(得分:2)

由于.NET Store for Windows应用商店中甚至没有FormattedText类,我的解决方法是使用TextBlock:

TextBlock dummyTextBlock = new TextBlock();
dummyTextBlock.FontFamily = new FontFamily("Tahoma");
dummyTextBlock.FontSize = 18;
dummyTextBlock.FontStyle = FontStyle.Normal;
dummyTextBlock.FontWeight = FontWeights.Bold;
dummyTextBlock.Text = "X";
dummyTextBlock.Measure(new Size(0,0));
dummyTextBlock.Arrange(new Rect(0,0,0,0));
double width = dummyTextBlock.ActualWidth;
double height = dummyTextBlock.ActualHeight;

它为您提供文本的高度(和宽度),以及它的显示方式。