Wpf 在RichTextBox上显示工具提示
我在WPF窗口上有一个RichTextBox。现在,我想在用户将鼠标移到RichTextBox上时显示工具提示。RichTextBox的内容应取决于鼠标指针下的文本。为此,我应该得到字符的位置,鼠标显示在该位置上Wpf 在RichTextBox上显示工具提示,wpf,richtextbox,tooltip,Wpf,Richtextbox,Tooltip,我在WPF窗口上有一个RichTextBox。现在,我想在用户将鼠标移到RichTextBox上时显示工具提示。RichTextBox的内容应取决于鼠标指针下的文本。为此,我应该得到字符的位置,鼠标显示在该位置上 致以最诚挚的问候,托马斯在下面的示例中,工具提示将显示插入符号所在的下一个字符 Xaml: <Window x:Class="Test.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/pres
致以最诚挚的问候,托马斯在下面的示例中,工具提示将显示插入符号所在的下一个字符 Xaml:
<Window x:Class="Test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<RichTextBox ToolTipOpening="rtb_ToolTipOpening" ToolTip="" />
</Window>
嗨,本。我需要鼠标光标所在位置的字符。@t.kehl抱歉,不知为什么我错过了那部分。无论如何,使用的方法,您可以编写一个函数,该函数采用鼠标位置并查找该位置的字符。我现在在工作,但如果你找不到解决办法,我会等我在家的时候再做。嗨,本。我没有在空闲的时候做过:void rtb_ToolTipOpeningobject sender,ToolTipEventArgs e{RichTextBox rtb=发送方作为RichTextBox;如果rtb==null返回;var position=rtb.GetPositionFromPointMouse.GetPositionrtb,false;如果position==null返回;var x=rtb.Document.ContentStart.getOffsetPositionPositionPosition;//我现在可以获取位置x处的文本/字符}mmhh-我现在不知道,如何添加此代码以使其更具可读性:-…你认为,这可以工作吗?@t.kehl编辑了我的答案,现在它显示了鼠标位置的字符。
void rtb_ToolTipOpening(object sender, ToolTipEventArgs e)
{
RichTextBox rtb = sender as RichTextBox;
if (rtb == null)
return;
TextPointer position = rtb.GetPositionFromPoint(Mouse.GetPosition(rtb), false);
if (position == null)
return;
int offset = rtb.Document.ContentStart.GetOffsetToPosition(position);
position = rtb.Document.ContentStart.GetPositionAtOffset(offset);
if (position == null)
return;
string text = position.GetTextInRun(LogicalDirection.Forward);
rtb.ToolTip = !string.IsNullOrEmpty(text) ? text.Substring(0, 1) : string.Empty;
}