wpf学习–隔行换色及设置具体行颜色

先说隔行换色

<!–隔行换色–>
        <Style TargetType=”DataGridRow” >
            <!–在DatagridRow 里面追加AlternationCount=”2″–>
            <!–<Setter Property=”Background” Value=”White” />–>
            <Setter Property=”Foreground” Value=”Black” />
            <Style.Triggers>
                <Trigger Property=”AlternationIndex” Value=”0″ >
                    <Setter Property=”Background” Value=”White” />
                </Trigger>
                <Trigger Property=”AlternationIndex” Value=”1″ >
                    <Setter Property=”Background” Value=”LightCyan” />
                </Trigger>
                <Trigger Property=”IsMouseOver” Value=”True”>
                    <Setter Property=”Background” Value=”WhiteSmoke”/>
                    <Setter Property=”Foreground” Value=”Black”/>
                    <Setter Property=”Cursor” Value=”Hand”/>
                </Trigger>
                <Trigger Property=”IsSelected” Value=”True”>
                    <Setter Property=”Foreground” Value=”White”/>
                    <Setter Property=”Background” Value=”{StaticResource GridRowSelectedBorder}”/>
                    <Setter Property=”Cursor” Value=”Arrow”/>
                </Trigger>
            </Style.Triggers>
        </Style>
具体使用的时候在datagrid里面追加 AlternationCount=”2″ 即可
再说说设置具体行颜色
 首先需要取得具体行
public static DataGridRow GetDataGridRow(DataGrid dataGrid, int rowIndex)
 {
 DataGridRow row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
 if (row == null)
 { dataGrid.UpdateLayout();
 row = (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);
 } return row;
 }
然后对行赋值
//设置具体行颜色
//DataGridRow drow = Global.GetDataGridRow(datagridItemList, 4);
//drow.Foreground = Brushes.Red;
//drow.Foreground = Brushes.Red;
//drow.Background = Brushes.Red;

发表评论