2012-12-13 31 views
0

我有一個WPFDataGrid,在那我可以設置DataGridRowBackground顏色,替代RowBackground顏色獨立。同樣我想設置DataGridRowForeground顏色,替代RowForeground顏色。如何獨立製作WPF Datagrid行前景和替代行前景色?

我該如何以簡單和最優的方式實現這一目標?

我綁定DataGrid動態,XAML靜態資源不會幫助我在這裏。

+0

你嘗試重寫OnLoadingRow()事件?一種簡單的方法是獲取背景畫筆並基於此,您可以設置前景。 – Ramin

回答

4

可以使用AlternationIndex道具這樣的:

<Style TargetType="{x:Type DataGridRow}"> 
    <Style.Triggers> 
     <Trigger Property="ItemsControl.AlternationIndex" Value="0"> 
      <Setter Property="Foreground" Value="Red" /> 
    </Trigger> 
    </Style.Triggers> 
</Style> 
0

您可以設置一個樣式觸發器,它將根據其背景顏色更改行的前景色。

例如,默認情況下,該行的前景色爲藍色,但如果它的背景色爲白色,則其前景色爲紅色。見下文。

<DataGrid ...> 
     <DataGrid.RowStyle> 
      <Style TargetType="DataGridRow"> 
       <Setter Property="TextElement.Foreground" Value="Blue"/> 
       <Style.Triggers> 
        <Trigger Property="TextElement.Background" Value="White"> 
         <Setter Property="TextElement.Foreground" Value="Red"/> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </DataGrid.RowStyle> 
     ... 
    </DataGrid>