c# - WPF - 关于带有嵌入式 TextBlock 元素的禁用超链接的工具提示

标签 c# wpf xaml hyperlink tooltip

我试图在我的 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。

关于c# - WPF - 关于带有嵌入式 TextBlock 元素的禁用超链接的工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25280282/

相关文章:

c# - 检测从系统屏幕返回

c# - 加载局部 View 的 AJAX 请求 -MVC

c# - 如何更新进度条使其平稳增加?

wpf - 为什么 XAML 的 Margin 属性有四个组件而不是两个?

c# - 语法问题 : Can't Change BackGround Of Particular button?

wpf - 访问 AdornedElementPlaceholder 上的属性的 Validation.ErrorTemplate

c# - 使用统一框架在 MVC 3 中进行依赖注入(inject)

c# - 在一个字节中找到设置位的位置

wpf - 绑定(bind)中的标签 % 后缀

wpf - 如何更改自动生成的列文本对齐方式