如何在 (wpf) RichTextBox 中显示来自 运行 对象的工具提示/上下文菜单
How to display tooltip / context menu from Run object in (wpf) RichTextBox
我正在尝试为 RichTextBox 中的某些词显示工具提示和上下文菜单。将内联与 TextBlock 结合使用非常简单。我刚做了:
_textBlock.Inlines.Add(new Bold(new Run("some text") { Foreground = Brushes.Orange, ToolTip = "This is a tooltip", ContextMenu = (contextMenu.Items.Count > 0 ? contextMenu : null) }));
不幸的是,当我像这样对 RichTextBox 做同样的事情时:
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Bold(new Run("some text") { Foreground = Brushes.Orange, ToolTip = "my tooltip doesn't work", ContextMenu = (contextMenu.Items.Count > 0 ? contextMenu : null) }));
_richTextBox.Document.Blocks.Add(paragraph);
没用。右键单击给我 cut/copy/paste 菜单,悬停不起作用。我能做些什么来使这项工作正常进行吗?如果没有,是否有比仅检查鼠标位置并动态构建上下文菜单和工具提示更好的方法?
其实这很简单,只需在 RichTextBox 上设置 IsDocumentEnabled="True",如下所示:
<RichTextBox Name="tbTest" IsDocumentEnabled="True"></RichTextBox>
我正在尝试为 RichTextBox 中的某些词显示工具提示和上下文菜单。将内联与 TextBlock 结合使用非常简单。我刚做了:
_textBlock.Inlines.Add(new Bold(new Run("some text") { Foreground = Brushes.Orange, ToolTip = "This is a tooltip", ContextMenu = (contextMenu.Items.Count > 0 ? contextMenu : null) }));
不幸的是,当我像这样对 RichTextBox 做同样的事情时:
var paragraph = new Paragraph();
paragraph.Inlines.Add(new Bold(new Run("some text") { Foreground = Brushes.Orange, ToolTip = "my tooltip doesn't work", ContextMenu = (contextMenu.Items.Count > 0 ? contextMenu : null) }));
_richTextBox.Document.Blocks.Add(paragraph);
没用。右键单击给我 cut/copy/paste 菜单,悬停不起作用。我能做些什么来使这项工作正常进行吗?如果没有,是否有比仅检查鼠标位置并动态构建上下文菜单和工具提示更好的方法?
其实这很简单,只需在 RichTextBox 上设置 IsDocumentEnabled="True",如下所示:
<RichTextBox Name="tbTest" IsDocumentEnabled="True"></RichTextBox>