1. <Window x:Class="Wpf_GridHeaderStyle_sample.Window1"
  2. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  4. xmlns:c="clr-namespace:Wpf_GridHeaderStyle_sample"
  5. Title="Window1" Height="300" Width="300">
  6. <Window.Resources>
  7. <ControlTemplate x:Key="tmpForThumb" TargetType="{x:Type Thumb}">
  8. <Border>
  9. <Rectangle Width="1" Name="rec">
  10. <Rectangle.Fill>
  11. <LinearGradientBrush StartPoint="0.5,0.3" EndPoint="1,1">
  12. <GradientStop Color="Orange" Offset="0.22"/>
  13. <GradientStop Color="White" Offset="1"/>
  14. </LinearGradientBrush>
  15. </Rectangle.Fill>
  16. </Rectangle>
  17. </Border>
  18. <ControlTemplate.Triggers>
  19. <Trigger Property="IsMouseOver" Value="True">
  20. <Setter TargetName="rec" Property="Fill" Value="LightGreen"/>
  21. </Trigger>
  22. </ControlTemplate.Triggers>
  23. </ControlTemplate>
  24. <Style TargetType="{x:Type GridViewColumnHeader}">
  25. <Setter Property="OverridesDefaultStyle" Value="True"/>
  26. <Setter Property="Template">
  27. <Setter.Value>
  28. <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
  29. <Grid Name="g">
  30. <Grid.Background>
  31. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  32. <GradientStop Color="Gold" Offset="0.3"/>
  33. <GradientStop Color="LightYellow" Offset="1"/>
  34. </LinearGradientBrush>
  35. </Grid.Background>
  36. <Border Name="bd" Padding="{TemplateBinding Padding}">
  37. <ContentPresenter Margin="5,4,1,3"  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"/>
  38. </Border>
  39. <Thumb Name="PART_HeaderGripper" Template="{StaticResource tmpForThumb}" HorizontalAlignment="Right" Margin="0,0,-1,0"/>
  40. </Grid>
  41. <ControlTemplate.Triggers>
  42. <Trigger Property="IsMouseOver" Value="True">
  43. <Setter TargetName="g" Property="Background">
  44. <Setter.Value>
  45. <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
  46. <GradientStop Color="DeepPink" Offset="0.3"/>
  47. <GradientStop Color="White" Offset="1"/>
  48. </LinearGradientBrush>
  49. </Setter.Value>
  50. </Setter>
  51. </Trigger>
  52. </ControlTemplate.Triggers>
  53. </ControlTemplate>
  54. </Setter.Value>
  55. </Setter>
  56. </Style>
  57. <!--数据源-->
  58. <c:Students x:Key="DBSource"/>
  59. <!--ListViewItem的样式-->
  60. <Style TargetType="{x:Type ListViewItem}">
  61. <Style.Setters>
  62. <Setter Property="SnapsToDevicePixels" Value="True"/>
  63. <Setter Property="Template">
  64. <Setter.Value>
  65. <ControlTemplate TargetType="{x:Type ListViewItem}">
  66. <Border x:Name="bd"
  67. BorderThickness="1"
  68. Padding="{TemplateBinding Padding}"
  69. SnapsToDevicePixels="True">
  70. <GridViewRowPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
  71. Margin="3"/>
  72. </Border>
  73. <ControlTemplate.Triggers>
  74. <Trigger Property="IsSelected" Value="True">
  75. <Trigger.Setters>
  76. <Setter TargetName="bd" Property="Background">
  77. <Setter.Value>
  78. <LinearGradientBrush StartPoint="0.5,0.22" EndPoint="0.5,1">
  79. <GradientStop Color="LightGray" Offset="0.31"/>
  80. <GradientStop Color="Gray" Offset="0.88"/>
  81. </LinearGradientBrush>
  82. </Setter.Value>
  83. </Setter>
  84. </Trigger.Setters>
  85. </Trigger>
  86. </ControlTemplate.Triggers>
  87. </ControlTemplate>
  88. </Setter.Value>
  89. </Setter>
  90. </Style.Setters>
  91. </Style>
  92. </Window.Resources>
  93. <Grid>
  94. <ListView x:Name="lv" ItemsSource="{StaticResource DBSource}">
  95. <ListView.View>
  96. <GridView AllowsColumnReorder="True">
  97. <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="姓名" Width="110"/>
  98. <GridViewColumn DisplayMemberBinding="{Binding Path=Phone}" Header="联系电话" Width="125"/>
  99. </GridView>
  100. </ListView.View>
  101. </ListView>
  102. </Grid>
  103. </Window>

继续聊WPF——为ListView的行设置样式的更多相关文章

  1. WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画

    原文:WPF ListView控件设置奇偶行背景色交替变换以及ListViewItem鼠标悬停动画 利用WPF的ListView控件实现类似于Winform中DataGrid行背景色交替变换的效果,同 ...

  2. WPF,ListView设置分组

    原文:WPF,ListView设置分组 今天遇到一个问题,就是在ListView中设置分组.想了很久在网上早了些资料作出一个例子. 分组字段也可以在后台中定义: CollectionView view ...

  3. (转)利用WPF的ListView进行大数据量异步加载

    原文:http://www.cnblogs.com/scy251147/archive/2012/01/08/2305319.html 由于之前利用Winform的ListView进行大数据量加载的时 ...

  4. 利用WPF的ListView进行大数据量异步加载

    原文:利用WPF的ListView进行大数据量异步加载 由于之前利用Winform的ListView进行大数据量加载的时候,诟病良多,所以今天试着用WPF的ListView来做了一下,结果没有让我失望 ...

  5. wpf datagrid row height 行高自动计算使每行行高自适应文本

    wpf 的datagrid的行高 要么是Auto,要么是定值:但会带来麻烦就是每行行高都一样. 当需要按内容(主要是wrap 换行的textbox或textblock)来动态调整行高的时候,需要用到d ...

  6. WPF之ListView使用WrapPanel

    原文:WPF之ListView使用WrapPanel 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/jiuzaizuotian2014/articl ...

  7. 【C#/WPF】ListView的MVVM例子,及禁止拖动ListView的头部Header

    一个ListView的MVVM简单例子: <ListView ItemsSource="{Binding GoodsList}" Margin="0,10,0,10 ...

  8. word-wrap&&word-break,奇偶行、列设置样式

    1.word-wrap和word-break区分. 来源场景:机械租赁mvc驾驶员信息查看: 当备注的文字多的时候,第一列的值成这模样: 解决方案:设置table 的td可自动换行.首先table设置 ...

  9. WPF Button的背景图片设置

    这个问题很简单,但是对于从winfrom转过来的来讲,在做事的时候就会被绕进去,言归正传,如何设置一个bUtton的背景图片?如何去掉让人烦的默认选中时的灰色背景?请看如下的描述.问题的来源和解决都在 ...

随机推荐

  1. iOS 通讯录编程【总结】

    第一大块儿:读取通讯录 1.iOS 6以上系统,争取获取用户允许: 初始化的时候须要推断.设备是否授权 -(id)init{ self = [super init]; [self createdABH ...

  2. 我的Android进阶之旅------&gt;android中getLocationInWindow 和 getLocationOnScreen的差别

    View.getLocationInWindow(int[] location) 一个控件在其父窗体中的坐标位置 View.getLocationOnScreen(int[] location) 一个 ...

  3. 计算cost--全表扫描

    以下教大家怎样手工算出oracle运行计划中的cost值. 成本的计算方式例如以下: Cost = (        #SRds * sreadtim +        #MRds * mreadti ...

  4. linux驱动注册汇总

    --- 01)TP file_operations: { 1. static struct file_operations tpd_fops = { // .owner = THIS_MODULE, ...

  5. DataGuard总体结构

    一.DataGuard总体结构 总体目标 1.   描述计划和非计划停机的不同因数 2.   DataGuard的主要组件 3.   物理以及逻辑DataGuard的异同 4.   建立DataGua ...

  6. 查看服务器wwn是否在交换机侧

    判断port_state是否为Online状态,是的话,读取出port_name,即为wwn. #!/usr/bin/env python3 # -*- coding: UTF-8 -*- impor ...

  7. linux下sh语法(转载)

    介绍: 1 开头 程序必须以下面的行开始(必须方在文件的第一行): #!/bin/sh 符号#!用来告诉系统它后面的参数是用来执行该文件的程序. 在这个例子中我们使用/bin/sh来执行程序. 当编写 ...

  8. js实用篇之数组、字符串常用方法

    常常在开发中,会使用到很多js数组和字符串的处理方法,这里列举一些我常用到的一些,方便大家参考使用. 数组方面 push:向数组尾部增加内容,返回的是新数组的长度. var arr = [1,2,3] ...

  9. python 46 css组合选择器 及优先级 、属性选择器

    一:css组合选择器 特性:每个选择器位可以为任意基本选择器或选择器组合 选择器分为以下几类: 群组选择器,子代(后代)选择器,相邻(兄弟)选择器,交集选择器,多类名选择器 1.群组选择器:    d ...

  10. go 函数高级运用

    一.函数作用域 说明 作用域的定义:已声明标识符所表示的常量.类型.变量.函数或包在源代码中的作用范围 在说函数作用域之前,先简单说一下局部变量和局变量 简单的说: 全局变量:在一个文件中,任何地方都 ...