WPF Datagrid.RowStyle渐变背景

时间:2016-09-28 11:40:26

标签: c# wpf datagrid

我想将数据网格的行背景从纯色更改为渐变。有什么想法吗?

目前的代码是:

<DataGrid.RowStyle>
 <Style TargetType="DataGridRow">
  <Style.Triggers>
   <DataTrigger Binding="{Binding GSRowBackground}" Value="0">
    <Setter Property="Background" Value="White"></Setter>
   </DataTrigger>
  </Style.Triggers>
 </Style>
</DataGrid.RowStyle>

解决方案(感谢我指出了正确的方向):

<DataGrid.RowStyle>
 <Style TargetType="DataGridRow">
  <Style.Triggers>
   <DataTrigger Binding="{Binding GSRowBackground}" Value="0">
    <Setter Property="Background">
     <Setter.Value>
      <LinearGradientBrush StartPoint="1,0" EndPoint="0,1">
       <GradientStop Offset="0" Color="#888888"/>
        <GradientStop Offset="1" Color="#FFFFF86E"/>
      </LinearGradientBrush>
     </Setter.Value>
    </Setter>
   </DataTrigger>
  </Style.Triggers>
 </Style>
</DataGrid.RowStyle>

2 个答案:

答案 0 :(得分:2)

    <LinearGradientBrush x:Key="gradientBrush" StartPoint="0,0" EndPoint="0,1">
       <GradientStop Offset="0" Color="#888888"/>
       <GradientStop Offset="1" Color="#FFFFF86E"/>
    </LinearGradientBrush>

<Style TargetType="{x:Type DataGridRow}">
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type DataGridRow}">
                <Border x:Name="DGR_Border" SnapsToDevicePixels="True" Background="{StaticResource gradientBrush}" Padding="0,0,3,3">        
                    <DataGridCellsPresenter ItemsPanel="{TemplateBinding ItemsPanel}" />
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

答案 1 :(得分:0)

解决方案(感谢我指出了正确的方向):

<DataGrid.RowStyle>
 <Style TargetType="DataGridRow">
  <Style.Triggers>
   <DataTrigger Binding="{Binding GSRowBackground}" Value="0">
    <Setter Property="Background">
     <Setter.Value>
      <LinearGradientBrush StartPoint="1,0" EndPoint="0,1">
       <GradientStop Offset="0" Color="#888888"/>
        <GradientStop Offset="1" Color="#FFFFF86E"/>
      </LinearGradientBrush>
     </Setter.Value>
    </Setter>
   </DataTrigger>
  </Style.Triggers>
 </Style>
</DataGrid.RowStyle>