如何根据条件更改超链接工具提示

时间:2017-08-31 05:35:06

标签: wpf xaml

我正在尝试根据条件更改超链接的颜色和工具提示 以下是代码:

<Hyperlink x:Name="HyperLink"
            TextDecorations="UnderLine"
            FontSize="12"
            FontWeight="SemiBold" 
            Command="{Binding Path=DummyCommand}" >

    <Run Text="{Binding Path=HyperLinkText}"/>

    <Hyperlink.Style>
        <Style TargetType="Hyperlink">
            <Setter Property="Foreground" Value="Blue"/>
            <Setter Property="ToolTip" Value="Has Access"/>
            <Style.Triggers>
                <DataTrigger Binding="{Binding HasPermission}" Value="False">
                    <Setter Property="Foreground" Value="Gray"/>
                    <Setter Property="ToolTip" Value="No Access"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Hyperlink.Style>

</Hyperlink>

当HasPermission变为false时,超链接颜色会变为灰色。 但我无法看到相同的工具提示。

注意:当DummyCommand.CanExecute(null)为false时, HasPermission = false。
      DummyCommand是一个绑定到超链接的命令属性的命令。

2 个答案:

答案 0 :(得分:0)

您是否尝试在不设置样式属性的情况下为真实案例添加DataTrigger?

<Hyperlink.Style>
    <Style TargetType="Hyperlink">
        <Style.Triggers>
            <DataTrigger Binding="{Binding HasPermission}" Value="True">
                <Setter Property="Foreground" Value="Blue"/>
                <Setter Property="ToolTip" Value="Has Access"/>
                <DataTrigger Binding="{Binding HasPermission}" Value="False">
                    <Setter Property="Foreground" Value="Gray"/>
                    <Setter Property="ToolTip" Value="No Access"/>
                </DataTrigger>
        </Style.Triggers>
    </Style>
</Hyperlink.Style>

答案 1 :(得分:0)

我得到了答案。这可能会有所帮助  我在TooltipServive.ShowOnDisabled = true之前使用了DataTrigger。它工作正常

<Hyperlink.Style>
    <Style TargetType="Hyperlink">
        <Setter Property="Foreground" Value="Blue"/>
        <Setter Property="ToolTip" Value="Has Access"/>
        Added line---->
        <Setter Property="ToolTipService.ShowOnDisabled" Value="True"/>
        <Style.Triggers>
            <DataTrigger Binding="{Binding HasPermission}" Value="False">
                <Setter Property="Foreground" Value="Gray"/>
                <Setter Property="ToolTip" Value="No Access"/>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</Hyperlink.Style>