2011-03-10 160 views

回答

9

您可以使用Mouse.GetPosition(MyRichTextBox)将返回你的X,Y鼠标的坐标在RichTextBox内

下面是我用来验证这是正确的一个简单的例子:

<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 2011-03-10 16:19:35

+0

@lale的坐标,坐标 - 不它必须是一个RichTextBox? TextBox有一个GetRectFromCharacterIndex,可用于....'textbox.GetRectFromCharacterIndex(textbox.CaretIndex)' – Rachel 2011-03-10 16:44:33

+0

@lale更新我的回答 – Rachel 2011-03-10 17:18:46

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

这将使X坐标,Y的carete位置