У меня есть стилизованное окно, и я хочу, чтобы переопределить стиль DataGrid для ВСЕХ DataGrids в моем приложенииКак переопределить стиль DataGrid
<Window.Resources>
<Style x:Name="dtgStyle" TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="Background" Value="Transparent" />
</Trigger>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="Blue" />
</Trigger>
<Trigger Property="IsSelected" Value="False">
<Setter Property="Background" Value="Transparent" />
</Trigger>
</Style.Triggers>
<Setter Property="Background" Value="Transparent" />
<Setter Property="Foreground" Value="White" />
</Style>
</Window.Resources>
Я thougth это должен был работать, но я должен применить
Style s = Resources["dtgStyle"] as Style;
mydtg.Style = s;
теперь мне не хотелось бы применять это для ВСЕХ dtgs. Лучше всего было бы автоматически применить его в xaml.
Thanx
--- ADD для АШ ----
Спасибо за вашу помощь. Единственная проблема заключается в том, что когда datagrid теряет фокус, выбранная строка в datagrid меняет цвет, как вы можете видеть на следующем рисунке (передний план превращается в черный).
Я пытался добавить различные свойства, но ничего не работает.
Кроме того, левая граница становится более смелой (без каламбур) и больше. Любая идея, как это исправить? Спасибо
'TargetType = "{х: Тип DataGridRow}" '. это стиль DataGridRow, а не DataGrid. И он должен применяться по умолчанию, потому что нет явного ключа – ASh
Thanx, поэтому я изменил имя DatagridRow на dtrStyle и добавил но как добавить правильный стиль сейчас? – Patrick
@Patrick Как вы устанавливаете 'TargetType =" {x: Type DataGridRow} "', вы можете установить для 'DataGrid'. Подумаешь ? Что вы пытаетесь достичь? – AnjumSKhan