我在WPF窗口上有一个RichTextBox。现在,我想在用户将鼠标移到RichTextBox上时显示工具提示。 RichTextBox的内容应该取决于鼠标指针下的Text。为此,我应该获得char显示的位置。
最诚挚的问候,托马斯
答案 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;
}