zoukankan      html  css  js  c++  java
  • WPF-带有GridView的ListView样式

    ListView是展示数据的常用控件,这里简单对带有GridView的ListView样式进行设置。

     <Style TargetType="{x:Type ListViewItem}">
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="Background" Value="Blue"/>
                        <Setter Property="Foreground" Value="White"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
            <Style x:Key="HeadStyle" TargetType="{x:Type GridViewColumnHeader}">
                <Setter Property="OverridesDefaultStyle" Value="False" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type GridViewColumnHeader}">
                            <Grid Name="g" Background="LightBlue">
                                <Border Name="bd" Padding="{TemplateBinding Padding}">
                                    <ContentPresenter Margin="5,4,1,3" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" />
                                </Border>
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter TargetName="g" Property="Background">
                                        <Setter.Value>
                                            <LinearGradientBrush StartPoint="0.5,0" EndPoint="0.5,1">
                                                <GradientStop Offset="0.3" Color="DeepPink" />
                                                <GradientStop Offset="1" Color="White" />
                                            </LinearGradientBrush>
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
    
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
            <!--  ListViewItem的样式  -->
            <Style x:Key="listitem1" TargetType="{x:Type ListViewItem}">
                <Style.Setters>
                    <Setter Property="SnapsToDevicePixels" Value="True" />
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type ListViewItem}">
                                <Border
                                    x:Name="bd"
                                    Padding="{TemplateBinding Padding}"
                                    SnapsToDevicePixels="True">
                                    <GridViewRowPresenter
                                        Margin="3"
                                        Columns="{TemplateBinding GridView.ColumnCollection}"
                                        Content="{TemplateBinding Content}" />
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Trigger.Setters>
                                            <Setter TargetName="bd" Property="Background">
                                                <Setter.Value>
                                                    <LinearGradientBrush StartPoint="0.5,0.22" EndPoint="0.5,1">
                                                        <GradientStop Offset="0.31" Color="LightGray" />
                                                        <GradientStop Offset="0.88" Color="Gray" />
                                                    </LinearGradientBrush>
                                                </Setter.Value>
                                            </Setter>
                                        </Trigger.Setters>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style.Setters>
            </Style>

    此样式设置了表头样式,和表的每一行样式。

     <Grid>
            <ListView
                x:Name="lvUsers"
                HorizontalAlignment="Center"
                VerticalAlignment="Center"
               >
                <ListView.View>
                    <GridView ColumnHeaderContainerStyle="{StaticResource HeadStyle}">
                        <GridViewColumn
                            Width="120"
                            DisplayMemberBinding="{Binding Name}"
                            Header="Name" />
                        <GridViewColumn
                            Width="50"
                            DisplayMemberBinding="{Binding Age}"
                            Header="Age" />
                        <GridViewColumn
                            Width="150"
                            DisplayMemberBinding="{Binding Mail}"
                            Header="Mail" />
                    </GridView>
                </ListView.View>
            </ListView>
        </Grid>

    .cs文件

     public partial class MainWindow : Window
        {
            public MainWindow()
            {
                InitializeComponent();
                List<User> items = new List<User>();
                items.Add(new User() { Name = "John Doe", Age = 42, Mail = "john@doe-family.com" });
                items.Add(new User() { Name = "Jane Doe", Age = 39, Mail = "jane@doe-family.com" });
                items.Add(new User() { Name = "Sammy Doe", Age = 7, Mail = "sammy.doe@gmail.com" });
                lvUsers.ItemsSource = items;
            }
        }
        public class User
        {
            public string Name { get; set; }
    
            public int Age { get; set; }
    
            public string Mail { get; set; }
        }

    效果图:

  • 相关阅读:
    jquery判断设备是否是手机
    jQuery -- touch事件之滑动判断(左右上下方向)
    sass制作雪碧图
    js时间字符串转为标准时间
    装箱和拆箱
    Dictionary泛型集合实现山寨版金山词霸
    泛型集合
    ArrayList集合与索引器及Hashtable
    黑马程序员--静态方法和静态类
    黑马程序员--多态练习(手机工厂)
  • 原文地址:https://www.cnblogs.com/king10086/p/11905494.html
Copyright © 2011-2022 走看看