在windows 8和windows phone中有地方我们需要计算字的宽度,例如在显示的时候需要截取多余的字变成...,还有在数据排版上面这个也是必不可少的。

一个字符显示的像素宽度与字体和字体大小有关系。我用到的是一个比较笨拙的方法,那就是拿textblock去量。

具体如下:

        TextBlock tb = new TextBlock();
            tb.FontFamily = new System.Windows.Media.FontFamily("微软雅黑");
            tb.FontSize = 50;
            tb.Text = "hello";
            System.Diagnostics.Debug.WriteLine("宽度:" + tb.ActualWidth + " 高度:" + tb.ActualHeight);

 这个方法很简单,但是到windows 8上面就不一样了。

在win8 metro程序里面,TextBlock必须要显示到UI上才能得到它的宽度和高度。这就麻烦了。

最后发现一个东西能够将它量出来。那就是矩形。

Rect rect = new Rect(0, 0, 1024, 1024);

TextBlock tb = new TextBlock();
tb.FontFamily = new FontFamily("微软雅黑");
tb.FontSize = 50;
tb.Text = "hello";
tb.Arrange(rect);
System.Diagnostics.Debug.WriteLine("宽度:" + tb.ActualWidth + " 高度:" + tb.ActualHeight);

 

相关文章:

  • 2022-01-01
  • 2021-04-22
  • 2022-12-23
  • 2021-08-17
  • 2021-11-14
  • 2022-12-23
  • 2021-07-01
  • 2022-12-23
猜你喜欢
  • 2021-07-09
  • 2021-10-21
  • 2022-12-23
  • 2022-02-11
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案