2015-01-07 37 views
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> 
+0

您使用.NET 4.5或4.0嗎? – Igor

回答

0

這適用於.NET 4.0:

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

這是你如何改變文字顏色:

<SolidColorBrush x:Key="{x:Static SystemColors.ControlTextBrushKey}" Color="White"/> 
相關問題