首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在WPF中测量文本

在WPF中测量文本
EN

Stack Overflow用户
提问于 2009-03-10 21:54:32
回答 3查看 22.4K关注 0票数 22

使用WPF,测量大量短字符串的最有效方法是什么?具体地说,我希望在给定统一格式(相同的字体、大小、粗细等)的情况下确定每个字符串的显示高度。以及字符串可能占据的最大宽度?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-03-11 00:29:35

最底层的技术(因此为创造性优化提供了最大的空间)就是使用GlyphRuns。

它没有很好的文档记录,但我在这里写了一个小例子:

http://smellegantcode.wordpress.com/2008/07/03/glyphrun-and-so-forth/

该示例计算出字符串的长度,这是呈现字符串之前的必要步骤。

票数 14
EN

Stack Overflow用户

发布于 2012-03-03 14:38:04

这很简单,由FormattedText类来完成!试试看。

票数 6
EN

Stack Overflow用户

发布于 2009-03-11 00:26:44

可以在呈现的TextBox上使用DesiredSize属性来获取高度和宽度

代码语言:javascript
复制
using System.Windows.Threading;

...

Double TextWidth = 0;
Double TextHeight = 0;
...

MyTextBox.Text = "Words to measure size of";
this.Dispatcher.BeginInvoke(
    DispatcherPriority.Background,
    new DispatcherOperationCallback(delegate(Object state) {
        var size = MyTextBox.DesiredSize;
        this.TextWidth = size.Width;
        this.TextHeight = size.Height;
        return null; 
    }
) , null);

如果您有大量的字符串,那么先预先计算给定字体中每个独立字母和符号的高度和宽度,然后根据字符串字符进行计算可能会更快。由于字距调整等原因,这可能不是100%准确

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/632445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档