2012-10-11 55 views
1

我正在嘗試更改所選單元格WPF DataGrid控件的樣式。WPF DataGrid控件中選定單元格的樣式

造型DataGridCellDataGridRow有什麼區別?我嘗試了下面的各種組合,他們都工作。但是,似乎我只需要設計或者DataGridCellDataGridRow

均爲的目的是什麼?這告訴我我誤解了他們的目的。

風格爲DataGridCell:(在我自己的代碼,我改變顏色的默認值)

<Style TargetType="{x:Type DataGridCell}"> 
<Style.Triggers> 
    <Trigger Property="IsSelected" Value="True"> 
    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/> 
    <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
    </Trigger> 
</Style.Triggers> 
</Style> 

風格DataGridRow:(在我自己的代碼,我改變顏色的默認值)

<Style TargetType="{x:Type DataGridRow}"> 
<Style.Triggers> 
    <Trigger Property="IsSelected" Value="True"> 
    <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
    <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.HighlightTextBrushKey}}"/> 
    <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
    </Trigger> 
</Style.Triggers> 
</Style> 

回答

3

DataGridRow將應用於整個Row。如果你想設置整行的任何屬性,你可以使用DataGridRow。

每個DataGridRow包含一個DataGridCell的列表。你也可以爲其定義一個樣式。如果你不這樣做,它會佔用DataGridRow的樣式。

一般情況下,我們指定了後者的定義兩個相鄰單元之間的分化,如指定細胞,邊框等之間的餘量

2

爲@abhishek說...... 我有我需要使用情況既行樣式和單元格樣式 那是我行樣式

<!-- Row Style--> 
     <Style x:Key="RowStyle" TargetType="{x:Type dg:DataGridRow}"> 
      <Style.Triggers> 
       <Trigger Property="Validation.HasError" Value="true"> 
        <Setter Property="BorderThickness" Value="1"/> 
        <Setter Property="BorderBrush" Value="Red"/> 
        <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Self}, Path=(Validation.Errors).CurrentItem.ErrorContent}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

那麼我就需要特定的細胞是白色背景,而選擇 我用

<Style x:Key="TimeCell" TargetType="{x:Type dg:DataGridCell}"> 
      <Style.Triggers> 
       <Trigger Property="IsSelected" Value="True"> 
        <Setter Property="Background" Value="White"/> 
        <Setter Property="Foreground" Value="Black"/> 
        <Setter Property="BorderBrush" Value="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}"/> 
       </Trigger> 
      </Style.Triggers> 
     </Style> 

,並給予特定的列樣式

<dg:DataGridTemplateColumn Width="120" CellStyle="{StaticResource TimeCell}"> 

我希望這是清楚我想說的

什麼
相關問題