原文:WPF DataGrid 样式分享

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

先看效果:

代码:

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

Style代码:

  1. <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  2. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  3. <Style TargetType="DataGrid">
  4. <!--网格线颜色-->
  5. <Setter Property="CanUserResizeColumns" Value="false"/>
  6. <Setter Property="Background" Value="#E6DBBB" />
  7. <Setter Property="BorderBrush" Value="#d6c79b" />
  8. <Setter Property="HorizontalGridLinesBrush">
  9. <Setter.Value>
  10. <SolidColorBrush Color="#d6c79b"/>
  11. </Setter.Value>
  12. </Setter>
  13. <Setter Property="VerticalGridLinesBrush">
  14. <Setter.Value>
  15. <SolidColorBrush Color="#d6c79b"/>
  16. </Setter.Value>
  17. </Setter>
  18. </Style>
  19. <!--标题栏样式-->
  20. <!--<Style TargetType="DataGridColumnHeader" >
  21. <Setter Property="Width" Value="50"/>
  22. <Setter Property="Height" Value="30"/>
  23. <Setter Property="FontSize" Value="14" />
  24. <Setter Property="Background" Value="White" />
  25. <Setter Property="FontWeight" Value="Bold"/>
  26. </Style>-->
  27. <Style TargetType="DataGridColumnHeader">
  28. <Setter Property="SnapsToDevicePixels" Value="True" />
  29. <Setter Property="MinWidth" Value="0" />
  30. <Setter Property="MinHeight" Value="28" />
  31. <Setter Property="Foreground" Value="#323433" />
  32. <Setter Property="FontSize" Value="14" />
  33. <Setter Property="Cursor" Value="Hand" />
  34. <Setter Property="Template">
  35. <Setter.Value>
  36. <ControlTemplate TargetType="DataGridColumnHeader">
  37. <Border x:Name="BackgroundBorder" BorderThickness="0,1,0,1"
  38. BorderBrush="#e6dbba"
  39. Width="Auto">
  40. <Grid >
  41. <Grid.ColumnDefinitions>
  42. <ColumnDefinition Width="*" />
  43. </Grid.ColumnDefinitions>
  44. <ContentPresenter Margin="0,0,0,0" VerticalAlignment="Center" HorizontalAlignment="Center"/>
  45. <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"
  46. VerticalAlignment="Center" RenderTransformOrigin="1,1" />
  47. <Rectangle Width="1" Fill="#d6c79b" HorizontalAlignment="Right" Grid.ColumnSpan="1" />
  48. <!--<TextBlock Background="Red">
  49. <ContentPresenter></ContentPresenter></TextBlock>-->
  50. </Grid>
  51. </Border>
  52. </ControlTemplate>
  53. </Setter.Value>
  54. </Setter>
  55. <Setter Property="Height" Value="25"/>
  56. </Style>
  57. <!--行样式触发-->
  58. <!--背景色改变必须先设置cellStyle 因为cellStyle会覆盖rowStyle样式-->
  59. <Style TargetType="DataGridRow">
  60. <Setter Property="Background" Value="#F2F2F2" />
  61. <Setter Property="Height" Value="25"/>
  62. <Setter Property="Foreground" Value="Black" />
  63. <Style.Triggers>
  64. <!--隔行换色-->
  65. <Trigger Property="AlternationIndex" Value="0" >
  66. <Setter Property="Background" Value="#e7e7e7" />
  67. </Trigger>
  68. <Trigger Property="AlternationIndex" Value="1" >
  69. <Setter Property="Background" Value="#f2f2f2" />
  70. </Trigger>
  71. <Trigger Property="IsMouseOver" Value="True">
  72. <Setter Property="Background" Value="LightGray"/>
  73. <!--<Setter Property="Foreground" Value="White"/>-->
  74. </Trigger>
  75. <Trigger Property="IsSelected" Value="True">
  76. <Setter Property="Foreground" Value="Black"/>
  77. </Trigger>
  78. </Style.Triggers>
  79. </Style>
  80. <!--单元格样式触发-->
  81. <Style TargetType="DataGridCell">
  82. <Setter Property="Template">
  83. <Setter.Value>
  84. <ControlTemplate TargetType="DataGridCell">
  85. <TextBlock TextAlignment="Center" VerticalAlignment="Center" >
  86. <ContentPresenter />
  87. </TextBlock>
  88. </ControlTemplate>
  89. </Setter.Value>
  90. </Setter>
  91. <Style.Triggers>
  92. <Trigger Property="IsSelected" Value="True">
  93. <!--<Setter Property="Background" Value="White"/>
  94. <Setter Property="BorderThickness" Value="0"/>-->
  95. <Setter Property="Foreground" Value="Black"/>
  96. </Trigger>
  97. </Style.Triggers>
  98. </Style>
  99. </ResourceDictionary>

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

WPF DataGrid 样式分享的更多相关文章

  1. WPF DataGrid 样式设置

    隔行换色,鼠标单击,悬浮样式都有,其具体效果如图 1 所示. 图 1 WPF DataGrid 样式设置效果图 其中: 界面设计代码下所示 ? + 查看代码 1 2 3 4 5 6 7 8 9 10 ...

  2. WPF GroupBox 样式分享

    原文:WPF GroupBox 样式分享 默认样式 GroupBox 样式分享" title="WPF GroupBox 样式分享"> 添加样式后 GroupBox ...

  3. WPF DataGrid自定义样式

    微软的WPF DataGrid中有很多的属性和样式,你可以调整,以寻找合适的(如果你是一名设计师).下面,找到我的小抄造型的网格.它不是100%全面,但它可以让你走得很远,有一些非常有用的技巧和陷阱. ...

  4. WPF DataGrid 自定义样式 MVVM 删除 查询

    看到很多小伙伴在找Dategrid样式 就分享一个 ,有不好的地方 请指出 代码部分都加了注释  需要的可以自己修改为自己需要的样式 源码已经上传 地址:  https://github.com/YC ...

  5. WPF自定义样式篇-DataGrid

    WPF自定义样式篇-DataGrid 先上效果图: 样式:  <!--DataGrid样式-->    <Style TargetType="DataGrid"& ...

  6. WPF DataGrid 数据绑定、样式、分页、增删改查,连接Access数据库

    先上效果图: XAML: <UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation&q ...

  7. wpf 导出Excel Wpf Button 样式 wpf简单进度条 List泛型集合对象排序 C#集合

    wpf 导出Excel   1 private void Button_Click_1(object sender, RoutedEventArgs e) 2 { 3 4 ExportDataGrid ...

  8. WPF DataGrid常用属性记录

    WPF DataGrid常用属性记录 组件常用方法: BeginEdit:使DataGrid进入编辑状态. CancelEdit:取消DataGrid的编辑状态. CollapseRowGroup:闭 ...

  9. WPF DataGrid某列使用多绑定后该列排序失效,列上加入 SortMemberPath 设置即可.

    WPF DataGrid某列使用多绑定后该列排序失效 2011-07-14 10:59hdongq | 浏览 1031 次  悬赏:20 在wpf的datagrid中某一列使用了多绑定,但是该列排序失 ...

随机推荐

  1. 超简易复制Model对象(为后续备忘录设计模式博文做铺垫)

    超简易复制Model对象(为后续备忘录设计模式博文做铺垫) 复制整个Model需要实现NSCopy协议,可以想象是非常麻烦的一件事情,今天我跟大家分享一个不需要你做任何操作的复制Model对象的方法, ...

  2. 使用最新版SDWebImage

    使用最新版SDWebImage 1. 下载源码: 2. 测试能否编译成功: 3. 用Xcode6新建一个工程,然后将文件夹拖入到工程当中: 4. 查看其主要的源码,发现之前使用版本的方法都被弃用了: ...

  3. python常见释疑(有别于报错)(不定时更新)

    文:铁乐与猫 01.在cmd运行py脚本后,直接回到了提示符,没有任何输出,看起来像是并没有运行一样. 答:你的感觉很可能是对的,但脚本很可能己经正常运行,只是你的代码里面很可能没有给出print提示 ...

  4. 《关于oracle数据库的勒索病毒的预警》

    近日,接部分机构反馈和安全厂商提醒,针对oracle数据库的勒索病毒攻击数量增加.该病毒存在较长潜伏期,会根据数据库实例创建时间距今是否满足1200天决定是否发起攻击.攻击通过执行恶意SQL脚本,加密 ...

  5. 硬盘上的一些算法小题目||and今天看了下林锐的书以及gdb调试 及一些变成算法小题目

    gdb调试:观察点,断点,事件捕捉点.step 进入函数,next 跳过函数,until 跳出循环,finish 结束函数 林锐:书后试题 & c++的对象模型图 看了二叉树的非递归遍历, 链 ...

  6. strip() 只去头尾的,不能去中间

    # b = st.strip("|") # strip() 只去头尾的,不能去中间

  7. java枚举学习入门

    一.前言  在java编程过程中,我们通常需要定义一些固定数量的常量,在jdk1.5以前,通常的做法是定义一个静态常量类,但自jdk1.5后,java引入了枚举(关键字enum,全称为 enumera ...

  8. 个人作业——APP案例分析

    APP--饿了么:平台--Android 第一部分 调研, 评测 1 个人上手体验 首先送上APP截图一张: 相信很多学生都用过这个APP了,第一次使用都是因为新用户有大额的满减优惠才下载这个APP使 ...

  9. 2754. [SCOI2012]喵星球上的点名【后缀数组】

    Description a180285幸运地被选做了地球到喵星球的留学生.他发现喵星人在上课前的点名现象非常有趣.   假设课堂上有N个喵星人,每个喵星人的名字由姓和名构成.喵星球上的老师会选择M个串 ...

  10. Java基础加强之反射

    1.什么是反射? 反射其实就是动态的加载类,我们在写JDBC的时候加载驱动Class.forName("xxx")时就涉及到了反射. 反射机制是在运行状态中,对于任意一个类,都能够 ...