在TextBox中查找插入符的位置

6

我需要知道TextBox中插入符的位置,以便在其附近弹出上下文菜单。如何找到其位置(而不是字符索引)?

3个回答

8

我发现了这篇文章,它描述了我需要完成的内容。原来你可以设置文本框的PlacementTarget和GetRectFromCharacterIndex返回的PlacementRectangle,并且它会起作用。


1
如果有人想知道如何在_RichTextBox_中执行相同的操作:richTextBox.CaretPosition.GetCharacterRect(LogicalDirection.Forward) - JobaDiniz

1

我想在用户输入时弹出上下文菜单(类似于智能感知)靠近插入符号,而不是简单地替换默认的上下文菜单。 - RandomEngy

0

我想你需要获取插入符号的字符索引,然后通过在插入符号左侧的文本上调用TextRenderer.MeasureText()将其转换为像素坐标。如果你的TextBox是多行的话,这显然会更加复杂。它是多行的吗?


很幸运,这只是一行代码。我会尝试测量文本的大小。 - RandomEngy
TextRenderer.MeasureText()似乎是针对WinForms而非WPF的。我找到了WPF的等效方法,但我很难获取所需计算上下文菜单锚点的TextBox位置。 - RandomEngy
哦,WPF。即使您使用了WPF标签,您也应该在问题中提供那种信息。 - Fantius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接