установка цвета гиперссылки в datagrid при выделении

#c# #wpf #hyperlink #datagrid

#c# #wpf #гиперссылка #datagrid

Вопрос:

У меня есть приложение WPF.

Я использую datagrid.

Внутри одного из столбцов я использую гиперссылку. Стиль устанавливает для этой ссылки зеленый цвет.

Когда я выделяю строку в datagrid, предварительный цвет гиперссылки не становится белым. он остается зеленым и как таковой не легко читается / просматривается.

Я пытался добавить триггер, но, похоже, нет свойства / события для 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>
  

и мой стиль на данный момент:

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

Комментарии:

1. Вы пытались изменить цвет гиперссылки на белый в выбранной строке?

2. @mww ПРИВЕТ, и где и как я мог бы это сделать, пожалуйста?

Ответ №1:

Вашим относительным источником должен быть DataGridRow, вот и все:

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