我有这本词典:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type StackPanel}">
<Setter Property="Margin" Value="12,12,20,20"/>
</Style>
<Style TargetType="{x:Type DataGrid}">
<Setter Property="IsReadOnly" Value="true"/>
<Setter Property="CanUserAddRows" Value="false"/>
<Setter Property="CanUserDeleteRows" Value="true"/>
<Setter Property="AutoGenerateColumns" Value="false"/>
<Setter Property="VerticalScrollBarVisibility" Value="Visible"/>
<Setter Property="HorizontalScrollBarVisibility" Value="Visible"/>
</Style>
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="Black"/>
<Setter Property="FontWeight" Value="Bold"/>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="SkyBlue" />
</Style.Resources>
</Style>
在我的视图中,我加载了字典,dataGrid获取了DataGrid的属性,但是他们没有使用DataGridRow的属性。
我想知道如何设置DataGridRows的属性,因为我想在dataGrid没有焦点时更改所选行的颜色,因为看不到默认的灰色颜色。
感谢。
答案 0 :(得分:1)
您可以在样式触发器中使用DataGridRow
IsSelected
属性,如下所示。然后,您可以在选择行时修改所选行的颜色。
<Style TargetType="{x:Type DataGridRow}">
<Setter Property="Background" Value="SkyBlue"/>
<Setter Property="FontWeight" Value="Bold"/>
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="SkyBlue" />
</Style.Resources>
<Style.Triggers>
<Trigger Property="IsSelected" Value="True">
<Setter Property="Background" Value="SkyBlue"/>
<Setter Property="FontWeight" Value="Bold"/>
<Setter Property="BorderBrush" Value="Tomato" />
<Setter Property="BorderThickness" Value="2" />
</Trigger>
</Style.Triggers>
</Style>