首页 > 其他 > 详细

WPF DataGrid ListView 等等 改变 选中行 颜色;以及 不变的原因

时间:2014-08-15 12:11:28      阅读:602      评论:0      收藏:0      [点我收藏+]

WPF中改变选中行的颜色是很简单的,就是用触发器:比如:以DataGrid为例: DataGrid.RowStyle Style TargetType= DataGridRow SetterProperty= Background Value= White / Style .Triggers TriggerProperty= IsMouseOver Value= True SetterProperty= Background Value= LightGray / /Trigger TriggerPrope

  

  WPF中改变选中行的颜色是很简单的,就是用触发器:比如:以DataGrid为例:

<DataGrid.RowStyle >
                                <Style TargetType="DataGridRow">
                                    <Setter Property="Background" Value="White"/>
                                    <Style.Triggers>
                                        <Trigger Property="IsMouseOver" Value="True">
                                            <Setter Property="Background" Value="LightGray"/>
                                        </Trigger>
                                        <Trigger Property="IsSelected" Value="True">
                                            <Setter Property="Background" Value="LightGray"/>
                                            <Setter Property="Foreground" Value="Red"/>
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>                                
    </DataGrid.RowStyle>

 

  但是,我告诉你,如果你没有设置cellStyle,你将会发现上面的代码“貌似”不工作,没用。这一点对 ListView 等等相似控件都是一样的。

  事实上,上面代码已经起作用了。IsSelected确实被触发了。问题在哪呢?

  答案正确,就在CellStyle上。因为RowStyle 的背景改变了,但CellStyle没变,你是看不出来的。

  也就是RowStyle很冤,因为CellStyle是在其上的。所以会被覆盖。原因就是“黑人”“白人”穿着“黑衣服”看起来都是黑的。

  改变的方法如下:

  加入CellStyle:

<DataGrid.CellStyle >
                                <Style TargetType="DataGridCell">
                                    <Style.Triggers >
                                        <Trigger Property="IsSelected" Value="True">
                                            <Setter Property="Background" Value="Red"></Setter>
                                        </Trigger>
                                    </Style.Triggers>
                                </Style>
</DataGrid.CellStyle>

WPF DataGrid ListView 等等 改变 选中行 颜色;以及 不变的原因,布布扣,bubuko.com

WPF DataGrid ListView 等等 改变 选中行 颜色;以及 不变的原因

原文:http://www.cnblogs.com/bdbw2012/p/3914262.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!