windows store app 如何计算字符所占的宽度

最近在做一个PDF电子文档相关的项目,我们的app是运行在Windows 8 / WinRT 下的。由于使用的第三方库的一些技术限制,text area竟然不支持多行文本自动换行。于是我们就需要自己实现自动换行,实现这个功能的关键点就是要知道如何去计算一个字符,一个单词在指定了字体跟字体大小的前提下占多宽。其实我们可以使用UIElement.Measure()来实现。具体的实现代码如下:

private static double MeasureString(string text,double fontSize = 7.0)
        {
            var textBlock = new TextBlock();
            textBlock.Text = text;
            textBlock.FontSize = fontSize;
            textBlock.FontFamily = new Windows.UI.Xaml.Media.FontFamily("Microsoft YaHei");
            textBlock.Measure(new Size(Double.MaxValue, Double.MaxValue));
            return textBlock.ActualWidth;
        }

 

posted @ 2017-01-22 15:40  supperwu  阅读(181)  评论(0编辑  收藏  举报