WPF中为DataGrid设置行样式

WPF中我们可能会遇到这样的需求,就是需要为不同的行设置行样式,而不是统一的样式,实现方式主要分为两种。

第一种,通过代码设置行样式。首先选中datagrid控件,选择为控件添加loadingrow事件,接着再添加如下代码

  private void dataGridView1_LoadingRow(object sender, DataGridRowEventArgs e)
        {
            int df = e.Row.GetIndex();
            if (df == 0)
            {
                e.Row.Height = 200;
                e.Row.Background = new SolidColorBrush(Colors.Red);//设置背景色透明
            }
            else if (df == 1)
            {
                e.Row.Height = 80;
                e.Row.Background = new SolidColorBrush(Colors.Blue);
                //e.Row.Padding = new Thickness(0,50,0,0);
            }
            else
            {
                e.Row.Height = 200;
                e.Row.Background = new SolidColorBrush(Colors.Green);
            }
        }

不过上面的方式有一定局限性,通常建议使用样式来实现,怎么实现,方式就是联想各行变色。这里需要注意的是,这两种方式不兼容,代码设置样式具有优先性。

<!--AlternationCount="3"-->
 <Style TargetType="DataGridRow">
        <Setter Property="Foreground" Value="Black" />
        <Style.Triggers>
            <!--隔行换色-->
            <Trigger Property="AlternationIndex" Value="0">
                <Setter Property="Height" Value="200" />
                <Setter Property="Background" Value="Transparent" />
            </Trigger>
            <Trigger Property="AlternationIndex" Value="1">
                <Setter Property="Height" Value="80" />
                <Setter Property="VerticalAlignment" Value="Bottom" />
                <Setter Property="Background" Value="AliceBlue" />
            </Trigger>
            <Trigger Property="AlternationIndex" Value="2">
                <Setter Property="Height" Value="200" />
                <Setter Property="Background" Value="Transparent" />
            </Trigger>
        </Style.Triggers>
    </Style>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值