WPF -带有内嵌TextBlock元素的禁用超链接的工具提示

本文关键字:超链接 工具提示 元素 TextBlock WPF | 更新日期: 2023-09-27 18:17:50

我试图把工具提示禁用超链接在我的WPF应用程序。超链接嵌入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区域。

谢谢。

WPF -带有内嵌TextBlock元素的禁用超链接的工具提示

我知道这听起来很奇怪,但这似乎工作:

<TextBlock Text="Hello there" IsEnabled="False">
    <Hyperlink ToolTip="ToolTip" ToolTipService.ShowOnDisabled="True">
        <TextBlock Text="Text" />
    </Hyperlink>
</TextBlock>

Tooltip移至textblock

<TextBlock TextAlignment="Center" Margin="5" ToolTip="ToolTip">
    <Hyperlink IsEnabled="False" ToolTipService.ShowOnDisabled="True">
        <TextBlock Text="Text"/>
    </Hyperlink>
</TextBlock>