这是代码:
<Border x:Name="GlobalBorder" IsEnabled="False">
<RichTextBox/>
</Border>
当我点击一个按钮时,我会GlobalBorder.IsEnabled = true
,它可以正常工作。
之后,我以编程方式在RichTextBox中插入一些Run对象。
问题是Run对象的工具提示不起作用。
但是,如果我删除xaml行IsEnabled="False"
工具提示工作。
附:我在启用边框之前,之后添加了Run对象。
编辑:
如果我以编程方式设置GlobalBorder.IsEnabled = false
(在Window的构造函数中)而不是使用xaml,工具提示工作!
这对我来说是一个谜!
我以这种方式添加Run对象:
FlowDocument document = TargetTextBox.Document;
Paragraph paragraph = document.Blocks.ElementAt(0) as Paragraph;
Run itemText = new Run("$" + componente.ItemComponente.IdComponenteTN.ToString() + "$");
itemText.ToolTip = componente.ItemComponente.Descrizione;
paragraph.Inlines.Add(itemText);
但是,正如我所说,只有禁用带有xaml的Border,工具提示才能起作用。
答案 0 :(得分:1)
看一下here:在{h}中将IsEnabled
属性设置为false,不参与的UIElements,因此不会成为输入事件的来源 - 无论您是在XAML中还是在代码中设置属性。
您的Run
个对象位于已禁用的控件中,因此它们不会引发MouseEnter
事件,并且其工具提示无法显示。如果您想要工具提示,则应考虑使用ReadOnly
的{{1}}属性,而不是RichTextBox
元素的IsEnabled
属性。
答案 1 :(得分:0)
您可以尝试将ToolTipService.ShowOnDisabled放入Border元素:
<Border x:Name="GlobalBorder"
IsEnabled="False"
ToolTipService.ShowOnDisabled="True">
<RichTextBox/>
</Border>