zoukankan      html  css  js  c++  java
  • WPF ListView CellTemplate Border设置ListView单元格的边框

    1.

    先看图片

    2.

    这是styleresource;应该还能精简掉很多;

    dd

        <Window.Resources>
            <Color x:Key="WindowColor">#FFE8EDF9</Color>
            <Color x:Key="ContentAreaColorLight">#FFC5CBF9</Color>
            <Color x:Key="ContentAreaColorDark">#FF7381F9</Color>
    
            <Color x:Key="DisabledControlLightColor">#FFE8EDF9</Color>
            <Color x:Key="DisabledControlDarkColor">#FFC5CBF9</Color>
            <Color x:Key="DisabledForegroundColor">#FF888888</Color>
    
            <Color x:Key="SelectedBackgroundColor">#FFC5CBF9</Color>
            <Color x:Key="SelectedUnfocusedColor">#FFDDDDDD</Color>
    
            <Color x:Key="ControlLightColor">White</Color>
            <Color x:Key="ControlMediumColor">#FF7381F9</Color>
            <Color x:Key="ControlDarkColor">#FF211AA9</Color>
    
            <Color x:Key="ControlMouseOverColor">#FF3843C4</Color>
            <Color x:Key="ControlPressedColor">#FF211AA9</Color>
    
    
            <Color x:Key="GlyphColor">#FF444444</Color>
            <Color x:Key="GlyphMouseOver">sc#1, 0.004391443, 0.002428215, 0.242281124</Color>
    
            <!--Border colors-->
            <Color x:Key="BorderLightColor">#FFCCCCCC</Color>
            <Color x:Key="BorderMediumColor">#FF888888</Color>
            <Color x:Key="BorderDarkColor">#FF444444</Color>
    
            <Color x:Key="PressedBorderLightColor">#FF888888</Color>
            <Color x:Key="PressedBorderDarkColor">#FF444444</Color>
    
            <Color x:Key="DisabledBorderLightColor">#FFAAAAAA</Color>
            <Color x:Key="DisabledBorderDarkColor">#FF888888</Color>
    
            <Color x:Key="DefaultBorderBrushDarkColor">Black</Color>
    
            <!--Control-specific resources.-->
            <Color x:Key="HeaderTopColor">#FFC5CBF9</Color>
            <Color x:Key="DatagridCurrentCellBorderColor">Black</Color>
            <Color x:Key="SliderTrackDarkColor">#FFC5CBF9</Color>
    
            <Color x:Key="NavButtonFrameColor">#FF3843C4</Color>
    
            <LinearGradientBrush x:Key="MenuPopupBrush"
                         EndPoint="0.5,1"
                         StartPoint="0.5,0">
                <GradientStop Color="{DynamicResource ControlLightColor}"
                    Offset="0" />
                <GradientStop Color="{DynamicResource ControlMediumColor}"
                    Offset="0.5" />
                <GradientStop Color="{DynamicResource ControlLightColor}"
                    Offset="1" />
            </LinearGradientBrush>
    
            <LinearGradientBrush x:Key="ProgressBarIndicatorAnimatedFill"
                         StartPoint="0,0"
                         EndPoint="1,0">
                <LinearGradientBrush.GradientStops>
                    <GradientStopCollection>
                        <GradientStop Color="#000000FF"
                        Offset="0" />
                        <GradientStop Color="#600000FF"
                        Offset="0.4" />
                        <GradientStop Color="#600000FF"
                        Offset="0.6" />
                        <GradientStop Color="#000000FF"
                        Offset="1" />
                    </GradientStopCollection>
                </LinearGradientBrush.GradientStops>
            </LinearGradientBrush>
    
            <Style x:Key="{x:Static GridView.GridViewScrollViewerStyleKey}"
           TargetType="ScrollViewer">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ScrollViewer">
                            <Grid Background="{TemplateBinding Background}">
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="*" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="*" />
                                    <RowDefinition Height="Auto" />
                                </Grid.RowDefinitions>
    
                                <DockPanel Margin="0">
                                    <ScrollViewer DockPanel.Dock="Top"
                              HorizontalScrollBarVisibility="Hidden"
                              VerticalScrollBarVisibility="Hidden"
                              Focusable="false">
                                        <GridViewHeaderRowPresenter Margin="0"
                                              Columns="{Binding Path=TemplatedParent.View.Columns,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              ColumnHeaderContainerStyle="{Binding
                    Path=TemplatedParent.View.ColumnHeaderContainerStyle,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              ColumnHeaderTemplate="{Binding
                    Path=TemplatedParent.View.ColumnHeaderTemplate,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              ColumnHeaderTemplateSelector="{Binding 
                    Path=TemplatedParent.View.ColumnHeaderTemplateSelector,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              AllowsColumnReorder="{Binding
                    Path=TemplatedParent.View.AllowsColumnReorder,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              ColumnHeaderContextMenu="{Binding
                    Path=TemplatedParent.View.ColumnHeaderContextMenu,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              ColumnHeaderToolTip="{Binding
                    Path=TemplatedParent.View.ColumnHeaderToolTip,
                    RelativeSource={RelativeSource TemplatedParent}}"
                                              SnapsToDevicePixels="{TemplateBinding
                    SnapsToDevicePixels}" />
                                    </ScrollViewer>
    
                                    <ScrollContentPresenter Name="PART_ScrollContentPresenter"
                                        KeyboardNavigation.DirectionalNavigation="Local"
                                        CanContentScroll="True"
                                        CanHorizontallyScroll="False"
                                        CanVerticallyScroll="False" />
                                </DockPanel>
    
                                <ScrollBar Name="PART_HorizontalScrollBar"
                         Orientation="Horizontal"
                         Grid.Row="1"
                         Maximum="{TemplateBinding ScrollableWidth}"
                         ViewportSize="{TemplateBinding ViewportWidth}"
                         Value="{TemplateBinding HorizontalOffset}"
                         Visibility="{TemplateBinding ComputedHorizontalScrollBarVisibility}" />
    
                                <ScrollBar Name="PART_VerticalScrollBar"
                         Grid.Column="1"
                         Maximum="{TemplateBinding ScrollableHeight}"
                         ViewportSize="{TemplateBinding ViewportHeight}"
                         Value="{TemplateBinding VerticalOffset}"
                         Visibility="{TemplateBinding ComputedVerticalScrollBarVisibility}" />
    
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    
            <Style x:Key="GridViewColumnHeaderGripper"
           TargetType="Thumb">
                <Setter Property="Width"
              Value="1" />
                <Setter Property="Background">
                    <Setter.Value>
                        <LinearGradientBrush StartPoint="0,0"
                               EndPoint="0,1">
                            <LinearGradientBrush.GradientStops>
                                <GradientStopCollection>
                                    <GradientStop Color="{DynamicResource BorderLightColor}"
                              Offset="0.0" />
                                    <GradientStop Color="{DynamicResource BorderDarkColor}"
                              Offset="1.0" />
                                </GradientStopCollection>
                            </LinearGradientBrush.GradientStops>
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type Thumb}">
                            <Border Padding="0"
                    Background="Transparent">
                                <Rectangle HorizontalAlignment="Center"
                         Width="1"
                         Fill="{TemplateBinding Background}" />
                            </Border>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Setter Property="BorderBrush">
                    <Setter.Value>
                        <LinearGradientBrush EndPoint="0.5,1"
                               StartPoint="0.5,0">
                            <GradientStop Color="Black"
                          Offset="0" />
                            <GradientStop Color="White"
                          Offset="1" />
                        </LinearGradientBrush>
                    </Setter.Value>
                </Setter>
            </Style>
    
            <Style x:Key="{x:Type GridViewColumnHeader}"
           TargetType="GridViewColumnHeader">
                <Setter Property="HorizontalContentAlignment"
              Value="Center" />
                <Setter Property="VerticalContentAlignment"
              Value="Center" />
                <Setter Property="Foreground"
              Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="GridViewColumnHeader">
                            <Grid>
                                <VisualStateManager.VisualStateGroups>
                                    <VisualStateGroup x:Name="CommonStates">
                                        <VisualState x:Name="Normal" />
                                        <VisualState x:Name="MouseOver">
                                            
                                        </VisualState>
                                        <VisualState x:Name="Pressed" />
                                        <VisualState x:Name="Disabled" />
                                    </VisualStateGroup>
                                </VisualStateManager.VisualStateGroups>
                                <Border x:Name="HeaderBorder"
                      BorderThickness="0"
                      Padding="0">
                                    <Border.BorderBrush>
                                        <LinearGradientBrush StartPoint="0,0"
                                       EndPoint="0,1">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStopCollection>
                                                    <GradientStop Color="{DynamicResource BorderLightColor}"
                                      Offset="0.0" />
                                                    <GradientStop Color="{DynamicResource BorderDarkColor}"
                                      Offset="1.0" />
                                                </GradientStopCollection>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
    
                                    </Border.BorderBrush>
                                    <Border.Background>
    
                                        <LinearGradientBrush StartPoint="0,0"
                                       EndPoint="0,1">
                                            <LinearGradientBrush.GradientStops>
                                                <GradientStopCollection>
                                                    <GradientStop Color="{DynamicResource ControlLightColor}"
                                      Offset="0.0" />
                                                    <GradientStop Color="{DynamicResource ControlMediumColor}"
                                      Offset="1.0" />
                                                </GradientStopCollection>
                                            </LinearGradientBrush.GradientStops>
                                        </LinearGradientBrush>
    
                                    </Border.Background>
                                    <ContentPresenter x:Name="HeaderContent"
                                  Margin="0,0,0,1"
                                  RecognizesAccessKey="True"
                                  VerticalAlignment="{TemplateBinding VerticalContentAlignment}"
                                  HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}"
                                  SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                                </Border>
                                <Thumb x:Name="PART_HeaderGripper"
                     HorizontalAlignment="Right"
                     Margin="0,0,-7,0"
                     Style="{StaticResource GridViewColumnHeaderGripper}" Background="Black" />
                            </Grid>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <Style.Triggers>
                    <Trigger Property="Role"
                 Value="Floating">
                        <Setter Property="Opacity"
                  Value="0.7" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="GridViewColumnHeader">
                                    <Canvas Name="PART_FloatingHeaderCanvas">
                                        <Rectangle Fill="#60000000"
                             Width="{TemplateBinding ActualWidth}"
                             Height="{TemplateBinding ActualHeight}" />
                                    </Canvas>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                    <Trigger Property="Role"
                 Value="Padding">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="GridViewColumnHeader">
                                    <Border Name="HeaderBorder"
                        BorderThickness="0,1,0,1">
                                        <Border.Background>
                                            <SolidColorBrush Color="{DynamicResource ControlLightColor}" />
                                        </Border.Background>
                                        <Border.BorderBrush>
                                            <LinearGradientBrush StartPoint="0,0"
                                         EndPoint="0,1">
                                                <LinearGradientBrush.GradientStops>
                                                    <GradientStopCollection>
                                                        <GradientStop Color="{DynamicResource BorderLightColor}"
                                        Offset="0.0" />
                                                        <GradientStop Color="{DynamicResource BorderDarkColor}"
                                        Offset="1.0" />
                                                    </GradientStopCollection>
                                                </LinearGradientBrush.GradientStops>
                                            </LinearGradientBrush>
                                        </Border.BorderBrush>
                                    </Border>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Trigger>
                </Style.Triggers>
            </Style>
    
            <Style x:Key="{x:Type ListView}"
           TargetType="ListView">
                <Setter Property="SnapsToDevicePixels"
              Value="true" />
                <Setter Property="OverridesDefaultStyle"
              Value="true" />
                <Setter Property="ScrollViewer.HorizontalScrollBarVisibility"
              Value="Auto" />
                <Setter Property="ScrollViewer.VerticalScrollBarVisibility"
              Value="Auto" />
                <Setter Property="ScrollViewer.CanContentScroll"
              Value="true" />
                <Setter Property="VerticalContentAlignment"
              Value="Center" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListView">
                            <Border Name="Border" 
                    BorderThickness="1">
                                <Border.Background>
                                    <SolidColorBrush Color="{StaticResource ControlLightColor}" />
                                </Border.Background>
                                <Border.BorderBrush>
                                    <SolidColorBrush Color="{StaticResource BorderMediumColor}" />
                                </Border.BorderBrush>
                                <ScrollViewer Style="{DynamicResource {x:Static GridView.GridViewScrollViewerStyleKey}}">
                                    <ItemsPresenter />
                                </ScrollViewer>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsGrouping"
                       Value="true">
                                    <Setter Property="ScrollViewer.CanContentScroll"
                        Value="false" />
                                </Trigger>
                                <Trigger Property="IsEnabled"
                       Value="false">
                                    <Setter TargetName="Border"
                        Property="Background">
                                        <Setter.Value>
                                            <SolidColorBrush Color="{DynamicResource DisabledBorderLightColor}" />
                                        </Setter.Value>
                                    </Setter>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    
            <Style x:Key="{x:Type ListViewItem}"
           TargetType="ListViewItem">
                <Setter Property="SnapsToDevicePixels"
              Value="true" />
                <Setter Property="OverridesDefaultStyle"
              Value="true" />
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="ListBoxItem">
                            <Border x:Name="Border"
                    Padding="0"
                    SnapsToDevicePixels="true"
                    Background="Black">
                                <DockPanel Background="White" Margin="0 0 0 1" Name="allen" LastChildFill="True">
                                <GridViewRowPresenter DockPanel.Dock="Left" />
                                </DockPanel>
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter TargetName="allen" Property="DockPanel.Background" Value="#B5B5B5">                                    
                                    </Setter>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
    
        </Window.Resources>
    

    3.

    这是ListView

            <ListView Height="697" HorizontalAlignment="Left" Margin="218,41,0,0" Name="listView1" VerticalAlignment="Top" Width="646" ItemsSource="{Binding Path=ArticleList}">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Header="标题" Width="80" CellTemplateSelector="{x:Null}">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <DockPanel LastChildFill="True">
                                        <TextBlock DockPanel.Dock="Left" Text="{Binding Path=title}" HorizontalAlignment="Left"></TextBlock>                                    
                                    </DockPanel>
                                    
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                        <GridViewColumn Header="文章内容">
                            <GridViewColumn.CellTemplate>
                                <DataTemplate>
                                    <DockPanel>
                                        <Rectangle DockPanel.Dock="Left" Fill="Black" Width="1"></Rectangle>
                                        <TextBlock DockPanel.Dock="Left" Text="{Binding Path=Description}"></TextBlock>                                    
                                    </DockPanel>
                                </DataTemplate>
                            </GridViewColumn.CellTemplate>
                        </GridViewColumn>
                    </GridView>
                </ListView.View>
            </ListView>
    

    基本上就是这样了

  • 相关阅读:
    java核心学习(八) 枚举类
    java核心学习(七) 内部类、匿名内部类、Lambda表达式
    算法-快速排序
    java核心学习(六) 面向接口编程
    java核心学习(五) 修饰符(重点是static、final)
    java 核心学习笔记(四) 单例类
    贪心 zoj3197
    贪心 poj3045
    三分 POJ3737
    浮点数二分答案 HDU1969
  • 原文地址:https://www.cnblogs.com/liulun/p/1916789.html
Copyright © 2011-2022 走看看