在RichTextBox上显示工具提示

时间:2011-05-08 16:46:55

标签: wpf richtextbox tooltip

我在WPF窗口上有一个RichTextBox。现在,我想在用户将鼠标移到RichTextBox上时显示工具提示。 RichTextBox的内容应该取决于鼠标指针下的Text。为此,我应该获得char显示的位置。

最诚挚的问候,托马斯

1 个答案:

答案 0 :(得分:1)

在以下示例中,工具提示将显示插入符号所在的下一个字符。

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>

代码隐藏:

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;
}