首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在FormattedText上执行命中测试的好方法是什么?

在FormattedText上执行命中测试的好方法是什么?
EN

Stack Overflow用户
提问于 2009-02-12 04:19:24
回答 4查看 1.2K关注 0票数 1

我使用FormattedText呈现文本,但似乎确实有任何方法可以在呈现的输出上执行按字符命中测试。它是只读的,所以我基本上只需要选择,不需要编辑。

我会使用RichTextBox或类似的代码,但我需要根据文本本身中嵌入的控制代码来输出文本,这样它们就不会总是嵌套,这使得构建正确的内联元素非常复杂。我还有点担心该解决方案的性能;我有大量的行,并且经常附加新行。

我看过GlyphRun,似乎我可以从它或相关的类中获得命中测试,但我会重新实现许多功能,似乎应该有一个更简单的方法……

有没有人知道实现这一点的好方法?

EN

Stack Overflow用户

发布于 2011-07-27 13:31:27

您可以从FormattedText对象中获取每个字符的几何体,并使用每个字符的边界来执行命中测试。

代码语言:javascript
复制
var geometry = (GeometryGroup)((GeometryGroup)text.BuildGeometry(new Point(0, 0))).Children[0];
foreach (var c in geometry.Children)
{
  if (c.Bounds.Contains(point))
    return index;
  index++;
}

在OnRender中,可以渲染这些几何体对象,而不是格式化文本。

票数 4
EN
查看全部 4 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/540002

复制
相关文章

相似问题

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