我创建了一个包含多个DataGrid控件的WPF项目。我希望它们以正常样式显示选定的行,即使DataGrid失去焦点也是如此。下面的代码有效,但我想要一种简单的方法将它应用于项目中的所有DataGrids,而无需手动将此代码插入到项目中的每个DataGrid中。可以在app.xaml文件或其他一些中央资源中完成吗?
<DataGrid Name="dgStores" AutoGenerateColumns="True" AutoGeneratedColumns="DataGrid_AutoGeneratedColumns" >
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="DodgerBlue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="DodgerBlue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/>
</DataGrid.Resources>
</DataGrid>
&#13;
答案 0 :(得分:1)
创建一个以DataGrid为目标的样式,并将您的资源添加到样式资源中,并将其置于可视树中的DataGrids上方(例如App.xaml):
<Style TargetType="DataGrid">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="DodgerBlue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="White"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightBrushKey}" Color="DodgerBlue"/>
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveSelectionHighlightTextBrushKey}" Color="White"/>
</Style.Resources>
</Style>