在WPF Richtextbox中获取TextPointer的XY坐标

6
我想知道是否可以在WPF Richtextbox中获取TextPointer的XY坐标。
2个回答

10
你可以使用Mouse.GetPosition(MyRichTextBox),它会返回鼠标在RichTextBox中的X,Y坐标。
下面是我用来验证它是否正确的一个简单示例:
<StackPanel>
    <RichTextBox x:Name="Test" Height="100" Width="100" MouseMove="Test_MouseMove"  />
    <Label x:Name="Test2" Content="{Binding }" />
</StackPanel>

后台代码:

private void Test_MouseMove(object sender, MouseEventArgs e)
{
    this.Test2.DataContext = Mouse.GetPosition(this.Test);
}

编辑

我没有意识到你想获取插入符位置而不是鼠标位置。使用myRichTextBox.CaretPosition.GetCharacterRect(LogicalDirection.Forward)来获取插入符的X,Y坐标。


1
不幸的是,我需要获取TextPointer的坐标,而不是鼠标的。 - Iale
@lale - 它必须是RichTextBox吗?TextBox有一个GetRectFromCharacterIndex方法可以用于此操作... textbox.GetRectFromCharacterIndex(textbox.CaretIndex) - Rachel

4
Rect Example = myRichTextBox.CaretPosition.GetCharacterRect(LogicalDirection.Forward)

这将提供光标位置的X、Y坐标。

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