2017-08-31 7 views
0

条件に基づいてハイパーリンクの色とツールチップを変更しようとしています。条件に基づいてハイパーリンクのツールチップを変更する方法

<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も偽となり、ハイパーリンクの色の変化がグレーに:
は、以下のコードです。 しかし、私は同じのツールチップを見ることができませんでした。

注:DummyCommand.CanExecute(null)がfalseの場合、HasPermission = falseです。
DummyCommandは、ハイパーリンクのCommandプロパティにバインドされたコマンドです。

答えて

0

私は答えを得ました。これは役に立ちます。
DataTriggerの前にTooltipServive.ShowOnDisabled = trueを使用しました。それはうまく動作します

<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> 
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

私は答えを得ました。データトリガーの前にTooltipService.ShowOnDisabledプロパティ= trueを設定した場合、それは機能します。 – ZigZig

関連する問題