1
我有一個DataGrid,我在這裏突出顯示基於綁定屬性QualityStatus的行顏色/文本。它工作正常,但默認行突出顯示會中斷行顏色。我意識到我可以將HighlightBrushKey設置爲透明,所以顏色不會改變,但是這不會影響「非活動」顏色,就像您選擇了一行但又聚焦了另一個控件一樣。另外,我不確定如何設置選定的行字體顏色。有條件地設置DataGrid RowStyle突出顯示背景和文字
理想情況下,我只需要標籤,我可以爲每種情況設置高亮背景/文本顏色,但不確定如何執行此操作。
<DataGrid.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" />
<SolidColorBrush x:Key="{x:Static SystemColors.InactiveBorderBrushKey}" Color="Transparent" />
</DataGrid.Resources>
<DataGrid.RowStyle>
<Style TargetType="DataGridRow">
<Style.Triggers>
<DataTrigger Binding="{Binding QualityStatus}" Value="Poor">
<Setter Property="Background" Value="Red"/>
<Setter Property="Foreground" Value="White"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding QualityStatus}" Value="Fair">
<Setter Property="Background" Value="Yellow"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Bold"/>
</DataTrigger>
<DataTrigger Binding="{Binding QualityStatus}" Value="Good">
<Setter Property="Background" Value="LightGreen"/>
<Setter Property="Foreground" Value="Black"/>
<Setter Property="FontWeight" Value="Normal"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataGrid.RowStyle>
您使用.NET 4.5或4.0嗎? – Igor