Изменить текстовую клавишу выделения текста в сетке данных - PullRequest
0 голосов
/ 16 октября 2018

Я пытаюсь изменить клавишу выделения текста для выбранной строки в моей сетке данных.Я перепробовал много ответов на другие вопросы, но у меня ничего не получалось.Я устанавливаю передний и задний ряды строк с помощью источника данных на разные цвета.Теперь я хочу сохранить цвет фона и передний план, когда выбран ряд.Когда я устанавливаю прозрачную клавишу выделения, цвет фона - тот, который я хочу.Но если я установил прозрачную клавишу выделения текста, текст полностью исчезнет.Есть ли возможность изменить это?Я пробовал разные способы запуска, но это не сработало.Как я могу изменить цвета подсветки для моих разных случаев (в xaml или предпочтительно в коде позади) и не устанавливать для всех них один конкретный цвет?

Пример того, как я устанавливаю фон и передний план:

<DataGrid.RowStyle>
    <Style TargetType="{x:Type DataGridRow}"
        <Style.Triggers>
            <DataTrigger Binding="{Binding MyData}" Value="MyValue">
                <Setter Property="Foreground" Value="Black"></Setter>
                <Setter Property="Background" Value="LightBlue"></Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding MyData}" Value="MyValue">
                <Setter Property="Foreground" Value="Green"></Setter>
                <Setter Property="Background" Value="Transparent"></Setter>
                <Setter Property="FontWeight" Value="Bold"></Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>
</DataGrid.RowStyle>

Как изменить цвета подсветки:

<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"></SolidColorBrush>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Transparent"></SolidColorBrush>

1 Ответ

0 голосов
/ 16 октября 2018

Это было какое-то время, но мне кажется, что ты хочешь чего-то подобного.Вы устанавливаете значения свойств в значение по умолчанию, после чего триггеры изменяют значение по умолчанию при совпадении значения триггера.

<DataGrid.RowStyle>
   <Style TargetType="{x:Type DataGridRow}">
      <Setter Property="Foreground" Value="Black"></Setter>
      <Setter Property="Background" Value="LightBlue"></Setter>
      <Style.Triggers>
          <DataTrigger Binding="{Binding MyData}" Value="MyValue">
             <Setter Property="Foreground" Value="Green"></Setter>
             <Setter Property="Background" Value="White"></Setter>
             <Setter Property="FontWeight" Value="Bold"></Setter>
          </DataTrigger>
      </Style.Triggers>
   </Style>
</DataGrid.RowStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...