• 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; }
        }

    效果图:

  • 相关阅读:
    HDU 1261 字串数(排列组合)
    Codeforces 488C Fight the Monster
    HDU 1237 简单计算器
    POJ 2240 Arbitrage
    POJ 3660 Cow Contest
    POJ 1052 MPI Maelstrom
    POJ 3259 Wormholes
    POJ 3268 Silver Cow Party
    Codesforces 485D Maximum Value
    POJ 2253 Frogger(最短路)
  • 原文地址:https://www.cnblogs.com/king10086/p/11905494.html
Copyright © 2020-2023  润新知