2016-10-12 7 views
0

私はWPFアプリケーションを持っています。ハイライトされたときに、データグリッドにハイパーリンクの色を設定します。

私はデータグリッドを使用します。

私はハイパーリンクを使用しています。スタイルはこのリンクを緑色に設定します。

データグリッドの行をハイライト表示すると、ハイパーリンクの前景色が白に変化しません。それは緑のままであり、そういうわけではありません。

triigerを追加しようとしましたが、hightlightedのプロパティ/イベントがないようです - isMouseOverのみです。

これは私のグリッドです:

現時点で
<DataGrid 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Work Item" Width="*" IsReadOnly="True" Binding="{Binding Description}" /> 
       <DataGridTemplateColumn Header=""> 
        <DataGridTemplateColumn.CellTemplate> 
         <DataTemplate> 
          <TextBlock> 
           <Hyperlink Style="{StaticResource Field_Hyperlink}">Remove</Hyperlink> 
          </TextBlock> 
         </DataTemplate> 
        </DataGridTemplateColumn.CellTemplate> 
       </DataGridTemplateColumn>     
     </DataGrid.Columns> 
    </DataGrid> 

と私のスタイル:あなたの相対的なソースはDataGridRowにする必要がある

<Style TargetType="Hyperlink" x:Key="Field_Hyperlink" > 
     <Setter Property="Foreground" Value="DarkGreen"/> 
     <Style.Triggers> 
      <Trigger Property="IsMouseOver" Value="True"> 
       <Setter Property="Foreground" Value="White"/> 
      </Trigger> 
     </Style.Triggers> 
    </Style> 
+0

あなたは選択した行のハイパーリンクの色を白に変更してみますか? –

+0

@mwwこんにちは、どうすればいいですか? –

答えて

1

、そこに行く:

<Style TargetType="Hyperlink" x:Key="Field_Hyperlink"> 
     <Setter Property="Foreground" Value="DarkGreen"></Setter> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding IsSelected, 
     RelativeSource= {RelativeSource 
          AncestorType={x:Type DataGridRow}}}" 
     Value="True"> 
       <Setter Property="Foreground" Value="White" /> 
      </DataTrigger> 
     </Style.Triggers> 
    </Style> 
+1

あなたはあなたのことを思い出します。私はまだ多くのWPFについて学ぶ必要があります:) –

関連する問題