Windows Store app没有提供windows form类似的MeasureString,因此无法计算一个字符串所占UI空间的大小。
但TextBlock等控件提供了Measure方法,因此利用TextBlock该方法封装了一个测量字符串的方法。
Size MeasureString(string content, Size availableSize, double fontSize, string fontFamily="Segoe UI")
{
TextBlock tb = new TextBlock();
tb.TextWrapping = TextWrapping.Wrap;
tb.Text = content;
tb.FontFamily = new Windows.UI.Xaml.Media.FontFamily(fontFamily);
tb.FontSize = fontSize;
tb.Measure(availableSize);
Size actualSize = new Size();
actualSize.Width = tb.ActualWidth;
actualSize.Height = tb.ActualHeight;
//return tb.DesiredSize;//所希望大大小,与availableSize有关
return actualSize;//实际的size
}
测试:
string str = "Hello word windows app store";
Size size = MeasureString(str, new Size(100, 200), 40);