我试图在我的 WPF 应用程序中将工具提示放在禁用的超链接上。超链接为文本参数绑定(bind)嵌入了 TextBlock 元素。但是,出于某种原因,工具提示不适用于具有嵌入式 TextBlock 元素的禁用超链接。这是一个例子:
<Grid>
<StackPanel>
<TextBlock TextAlignment="Center" Margin="5">
<Hyperlink IsEnabled="False" ToolTip="ToolTip" ToolTipService.ShowOnDisabled="True">Text</Hyperlink>
</TextBlock>
<TextBlock TextAlignment="Center" Margin="5">
<Hyperlink IsEnabled="True" ToolTip="ToolTip" ToolTipService.ShowOnDisabled="True">
<TextBlock Text="Text"/>
</Hyperlink>
</TextBlock>
<TextBlock TextAlignment="Center" Margin="5">
<Hyperlink IsEnabled="False" ToolTip="ToolTip" ToolTipService.ShowOnDisabled="True">
<TextBlock Text="Text"/>
</Hyperlink>
</TextBlock>
</StackPanel>
</Grid>
此 XAML 描述了三个超链接。
- 第一个超链接被禁用,但没有嵌入 TextBlock 元素。工具提示显示正常。
- 第二个超链接有一个嵌入的 TextBlock 元素,但已启用。同样,工具提示显示正常。
- 第三个超链接被禁用并有一个嵌入的 TextBlock 元素,这是我需要的,但工具提示未显示。
如何显示带有嵌入式 TextBlock 元素的禁用超链接的工具提示?我不想将工具提示添加到父 TextBlock,因为我希望工具提示只出现在超链接文本上,而不是整个 TextBlock 区域。
谢谢。
我知道这听起来很奇怪,但这似乎有效:
<TextBlock Text="Hello there" IsEnabled="False">
<Hyperlink ToolTip="ToolTip" ToolTipService.ShowOnDisabled="True">
<TextBlock Text="Text" />
</Hyperlink>
</TextBlock>
即,您必须禁用父 TextBlock。
我是一名优秀的程序员,十分优秀!