WPF DataGrid 样式分享

隔行换色,鼠标单击,悬浮样式都有

先看效果:

medium.jpg

代码:

 
  
< DataGrid AutoGenerateColumns ="False" Name ="dataGrid1" VerticalAlignment ="Top" CanUserSortColumns ="False" Width ="660" Margin ="5" IsReadOnly ="True" CanUserResizeColumns ="False" CanUserResizeRows ="False" SelectionMode ="Single" CanUserReorderColumns ="False" AlternationCount ="2" RowHeaderWidth ="0" CanUserAddRows ="False" > < DataGrid.Columns > < DataGridTextColumn Header ="名称" Width ="150" Binding ="{Binding Name}" /> < DataGridTextColumn Header ="最新价" Width ="120" Binding ="{Binding Zxj}" /> < DataGridTextColumn Header ="涨跌" Width ="120" Binding ="{Binding Zd}" /> < DataGridTextColumn Header ="涨幅" Width ="130" Binding ="{Binding Zf}" /> < DataGridTextColumn Header ="短线强势股" Width ="140" Binding ="{Binding Dxqsg}" /> </ DataGrid.Columns > </ DataGrid >

Style代码:

 
  
< ResourceDictionary xmlns ="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x ="http://schemas.microsoft.com/winfx/2006/xaml" > < Style TargetType ="DataGrid" > <!-- 网格线颜色 --> < Setter Property ="CanUserResizeColumns" Value ="false" /> < Setter Property ="Background" Value ="#E6DBBB" /> < Setter Property ="BorderBrush" Value ="#d6c79b" /> < Setter Property ="HorizontalGridLinesBrush" > < Setter.Value > < SolidColorBrush Color ="#d6c79b" /> </ Setter.Value > </ Setter > < Setter Property ="VerticalGridLinesBrush" > < Setter.Value > < SolidColorBrush Color ="#d6c79b" /> </ Setter.Value > </ Setter > </ Style > <!-- 标题栏样式 --> <!-- <Style TargetType="DataGridColumnHeader" > <Setter Property="Width" Value="50"/> <Setter Property="Height" Value="30"/> <Setter Property="FontSize" Value="14" /> <Setter Property="Background" Value="White" /> <Setter Property="FontWeight" Value="Bold"/> </Style> --> < Style TargetType ="DataGridColumnHeader" > < Setter Property ="SnapsToDevicePixels" Value ="True" /> < Setter Property ="MinWidth" Value ="0" /> < Setter Property ="MinHeight" Value ="28" /> < Setter Property ="Foreground" Value ="#323433" /> < Setter Property ="FontSize" Value ="14" /> < Setter Property ="Cursor" Value ="Hand" /> < Setter Property ="Template" > < Setter.Value > < ControlTemplate TargetType ="DataGridColumnHeader" > < Border x:Name ="BackgroundBorder" BorderThickness ="0,1,0,1" BorderBrush ="#e6dbba" Width ="Auto" > < Grid > < Grid.ColumnDefinitions > < ColumnDefinition Width ="*" /> </ Grid.ColumnDefinitions > < ContentPresenter Margin ="0,0,0,0" VerticalAlignment ="Center" HorizontalAlignment ="Center" /> < Path x:Name ="SortArrow" Visibility ="Collapsed" Data ="M0,0 L1,0 0.5,1 z" Stretch ="Fill" Grid.Column ="2" Width ="8" Height ="6" Fill ="White" Margin ="0,0,50,0" VerticalAlignment ="Center" RenderTransformOrigin ="1,1" /> < Rectangle Width ="1" Fill ="#d6c79b" HorizontalAlignment ="Right" Grid.ColumnSpan ="1" /> <!-- <TextBlock Background="Red"> <ContentPresenter></ContentPresenter></TextBlock> --> </ Grid > </ Border > </ ControlTemplate > </ Setter.Value > </ Setter > < Setter Property ="Height" Value ="25" /> </ Style > <!-- 行样式触发 --> <!-- 背景色改变必须先设置cellStyle 因为cellStyle会覆盖rowStyle样式 --> < Style TargetType ="DataGridRow" > < Setter Property ="Background" Value ="#F2F2F2" /> < Setter Property ="Height" Value ="25" /> < Setter Property ="Foreground" Value ="Black" /> < Style.Triggers > <!-- 隔行换色 --> < Trigger Property ="AlternationIndex" Value ="0" > < Setter Property ="Background" Value ="#e7e7e7" /> </ Trigger > < Trigger Property ="AlternationIndex" Value ="1" > < Setter Property ="Background" Value ="#f2f2f2" /> </ Trigger > < Trigger Property ="IsMouseOver" Value ="True" > < Setter Property ="Background" Value ="LightGray" /> <!-- <Setter Property="Foreground" Value="White"/> --> </ Trigger > < Trigger Property ="IsSelected" Value ="True" > < Setter Property ="Foreground" Value ="Black" /> </ Trigger > </ Style.Triggers > </ Style > <!-- 单元格样式触发 --> < Style TargetType ="DataGridCell" > < Setter Property ="Template" > < Setter.Value > < ControlTemplate TargetType ="DataGridCell" > < TextBlock TextAlignment ="Center" VerticalAlignment ="Center" > < ContentPresenter /> </ TextBlock > </ ControlTemplate > </ Setter.Value > </ Setter > < Style.Triggers > < Trigger Property ="IsSelected" Value ="True" > <!-- <Setter Property="Background" Value="White"/> <Setter Property="BorderThickness" Value="0"/> --> < Setter Property ="Foreground" Value ="Black" /> </ Trigger > </ Style.Triggers > </ Style > </ ResourceDictionary >

本文同步发表在 http://xiaogangblog.com

转载于:https://www.cnblogs.com/xiaogangqq123/archive/2012/05/07/2487166.html

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值