- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我正在使用 FormattedText
呈现文本,但似乎确实有任何方法可以对呈现的输出执行每个字符的 HitTest 。它是只读的,所以我基本上只需要选择,不需要编辑。
我会使用 RichTextBox
或类似的,但我需要根据嵌入文本本身的控制代码输出文本,因此它们并不总是嵌套,这使得构建正确的内联元素非常复杂的。我也有点担心该解决方案的性能;我有很多行,并且经常附加新行。
我查看了 GlyphRun
,看来我可以从它或相关类中进行 HitTest ,但我会重新实现很多功能,而且似乎应该有更简单的方法...
有人知道实现这个的好方法吗?
最佳答案
您可以从 FormattedText 对象中获取每个字符的几何形状,并使用每个字符的边界进行 HitTest 。
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 中,您可以渲染这些几何对象而不是格式化文本。
关于c# - 对 FormattedText 执行 HitTest 的好方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/540002/
我正在使用 用于格式化我的页面。它按预期工作正常,但文本接缝周围的填充很大。所以我给这个元素应用了自己的styleClass但是没有生效。 Firebug 显示该段落具有 styleClass 'se
我正在使用 FormattedText 类创建文本 - 但是在使用此类时如何下标或上标文本?我找到了有关如何在使用 TextBlock 时执行此操作的解决方案,但我使用的是 FormattedText
我正在使用 System.Windows.Media.FormattedText 进行一些低级渲染(具体来说,尝试以一种排版令人愉悦的方式渲染数学方程式)。为此,我使用的文本 block 的精确指标至
在 C# 表单项目中,我可以编写以下代码来获得我想要的东西,但似乎我试图融合两个不同的“世界”。 FormattedText text = new FormattedText(textBox1.Tex
我正在使用以下方法将文本写入我的主窗口。我的问题是,有没有办法在创建后更改 FormattetText 或绘图视觉的文本?或者,如果我希望在运行时更新文本,我应该使用另一种方法来编写文本吗? priv
我正在尝试使用 FormattedText.BuildGeometry 来确定字符的布局方式,以确定鼠标的逻辑位置。在我的上下文中,可以假定 FormattedText 是单行 - 我应该得到一个包含
我正在构建一个文本到图像生成器,它接受文本、字体、最大宽度和一些其他参数,并从中生成图像。它将用作网站中的自定义服务器控件以生成标题。 我已经有了这样一个使用 GDI+ 的组件。问题是 GDI+ 无法
如果我有这样的代码: FormattedText text = new FormattedText(sTheBook, System.Globalization.CultureInfo.C
我正在使用 FormattedText 呈现文本,但似乎确实有任何方法可以对呈现的输出执行每个字符的 HitTest 。它是只读的,所以我基本上只需要选择,不需要编辑。 我会使用 RichTextBo
我们正在使用 WPF FormattedText 对象来确定从 RSS 提要获取最新新闻标题的服务中的文本大小。检索到的文本需要在指定的 Canvas 大小中。该服务每 10 秒运行一次代码,如果一个
使用 WPF4,您可以通过将 TextOptions.TextFormattingMode="Display"和 TextOptions.TextRenderingMode="Aliased"添加到
我正在尝试将标签填充到水平 slider ,并且通过将 Text 传递给 FormattedText 构造函数,我成功地使用了派生自 TickBar 的类来完成此操作。但是现在,当我使用相同的代码并将
在我的 WPF 应用程序中,我有一个自定义的 Canvas 实现,我在其中使用指定的 .ttf 文件绘制了一些文本。 ttf 文件位于一个临时位置,以后可以将其删除。我的问题是,一旦我的文本呈现在 C
我想用不同的渲染选项绘制一个 FormattedText。例如,当我们创建一个标签时,我们可以设置它的 TextOptions.TextFormattingMode(Ideal/Display) 和
我想使用嵌套在 jsbin 中的 sap.m.CustomTile 中的 sap.m.FormattedText 进行演示.我不知道为什么我得到这个文本 SYSTEM SIZE: 我使用的字符串是:
在 WPF4 中,我如何为 drawingvisual 计算 FormattedText 或 GlyphRun 的 'Size'。 我在 Canvas 中使用绘图视觉。当我更改文本大小或文本时,会发生
当我尝试使用 .net Framework 4.6.2 构建 WPF 项目时,出现错误,因为 FormattedText() 已过时,如下所示: [过时(“使用 PixelsPerDip 覆盖”,fa
我是一名优秀的程序员,十分优秀!