首页 > 代码库 > WPF DataGrid 样式设置
WPF DataGrid 样式设置
隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示。
图 1 WPF DataGrid 样式设置效果图
其中:
界面设计代码下所示
?
1 2 3 4 5 6 7 8 9 10 11 12 | < 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 > |
如果是想把整个所开发的应用程序都更改为这个样式,则在App.xaml文档里面添加相应的样式代码,如果只是当前界面,则在当前界面添加相应的样式代码,样式具体代码如下:
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 | < 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="http://www.mamicode.com/50"/> <Setter Property="Height" Value="http://www.mamicode.com/30"/> <Setter Property="FontSize" Value="http://www.mamicode.com/14" /> <Setter Property="Background" Value="http://www.mamicode.com/White" /> <Setter Property="FontWeight" Value="http://www.mamicode.com/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="http://www.mamicode.com/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="http://www.mamicode.com/White"/> <Setter Property="BorderThickness" Value="http://www.mamicode.com/0"/>--> < Setter Property = "Foreground" Value = "Black" /> </ Trigger > </ Style.Triggers > </ Style > </ ResourceDictionary > |
转载请注明:学者@李双琳 » 转载:WPF DataGrid 样式分享
WPF DataGrid 样式设置
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。