继续聊WPF——为ListView的行设置样式

  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.                               
  53.                         </ControlTemplate.Triggers>  
  54.                     </ControlTemplate>  
  55.                 </Setter.Value>  
  56.             </Setter>  
  57.         </Style>  
  58.         <!--数据源-->  
  59.         <c:Students x:Key="DBSource"/>  
  60.         <!--ListViewItem的样式-->  
  61.         <Style TargetType="{x:Type ListViewItem}">  
  62.             <Style.Setters>  
  63.                 <Setter Property="SnapsToDevicePixels" Value="True"/>  
  64.                 <Setter Property="Template">  
  65.                     <Setter.Value>  
  66.                         <ControlTemplate TargetType="{x:Type ListViewItem}">  
  67.                                                     <Border x:Name="bd"  
  68.                                 BorderThickness="1"  
  69.                                 Padding="{TemplateBinding Padding}"  
  70.                                 SnapsToDevicePixels="True">  
  71.                             <GridViewRowPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"  
  72.                                                   Margin="3"/>  
  73.                         </Border>  
  74.                             <ControlTemplate.Triggers>  
  75.                                 <Trigger Property="IsSelected" Value="True">  
  76.                                     <Trigger.Setters>  
  77.                                         <Setter TargetName="bd" Property="Background">  
  78.                                             <Setter.Value>  
  79.                                                 <LinearGradientBrush StartPoint="0.5,0.22" EndPoint="0.5,1">  
  80.                                                     <GradientStop Color="LightGray" Offset="0.31"/>  
  81.                                                     <GradientStop Color="Gray" Offset="0.88"/>  
  82.                                                 </LinearGradientBrush>  
  83.                                             </Setter.Value>  
  84.                                         </Setter>  
  85.                                     </Trigger.Setters>  
  86.                                 </Trigger>  
  87.                             </ControlTemplate.Triggers>  
  88.                         </ControlTemplate>  
  89.                     </Setter.Value>  
  90.                 </Setter>  
  91.             </Style.Setters>  
  92.         </Style>  
  93.     </Window.Resources>  
  94.     <Grid>  
  95.         <ListView x:Name="lv" ItemsSource="{StaticResource DBSource}">  
  96.             <ListView.View>  
  97.                 <GridView AllowsColumnReorder="True">  
  98.                     <GridViewColumn DisplayMemberBinding="{Binding Path=Name}" Header="姓名" Width="110"/>  
  99.                     <GridViewColumn DisplayMemberBinding="{Binding Path=Phone}" Header="联系电话" Width="125"/>  
  100.                 </GridView>  
  101.             </ListView.View>  
  102.         </ListView>  
  103.     </Grid>  
  104. </Window>  


原文地址:https://www.cnblogs.com/xieweikai/p/6832744.html