WPF的GridView是否有垂直边框?

时间:2009-07-23 18:00:05

标签: wpf gridview listview

有没有办法在WPF GridView上设置垂直边框?

以下适用于一些漂亮的水平边框。有没有一种方法可以将垂直边框添加到位于此ListView内的GridView?

<Style x:Key="ListViewItemBase" TargetType="{x:Type ListViewItem}">
  <Setter Property="BorderThickness" Value="1" />
  <Setter Property="BorderBrush" Value="#BABABE" />
</Style>

提前致谢

1 个答案:

答案 0 :(得分:2)

试试......来自http://blogs.microsoft.co.il/blogs/tomershamam/archive/2007/12/16/wpf-listview-vertical-lines-horizontal-as-bonus.aspx

<ScrollContentPresenter x:Name="PART_ScrollContentPresenter"
            SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"                                            
            ContentTemplate="{TemplateBinding ContentTemplate}"
            KeyboardNavigation.DirectionalNavigation="Local"
            CanContentScroll="{TemplateBinding CanContentScroll}">

    <ScrollContentPresenter.Content>
        <Grid>
            <!-- Container of vertical and horizontal lines -->
            <ItemsControl Margin="3,0,0,0"
                          ItemsSource="{Binding Path=TemplatedParent.View.Columns,
                                        RelativeSource={RelativeSource TemplatedParent}}">
                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Border Width="{Binding Path=ActualWidth}"
                                BorderThickness="0,0,1,0"
                                BorderBrush="{DynamicResource verticalLineColor}" />
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel Orientation="Horizontal" />
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>

                <!-- Fill background with horizontal lines -->
                <ItemsControl.Background>
                    <VisualBrush TileMode="Tile"
                                 Stretch="None"
                                 Viewport="{Binding Source={StaticResource columnHeight},
                                            Converter={StaticResource columnViewportConverter}}"
                                 ViewportUnits="Absolute">
                        <VisualBrush.Visual>
                            <StackPanel HorizontalAlignment="Stretch"
                                        VerticalAlignment="Stretch">
                                <!-- Add Rectangles here for more horizontal lines -->
                                <Rectangle Height="{DynamicResource columnHeight}"
                                           VerticalAlignment="Stretch"
                                           Fill="{DynamicResource horizontalLineColor1}"
                                           Width="1" />
                                <Rectangle Height="{DynamicResource columnHeight}"
                                           VerticalAlignment="Stretch"
                                           Fill="{DynamicResource horizontalLineColor2}"
                                           Width="1"  />
                            </StackPanel>
                        </VisualBrush.Visual>
                    </VisualBrush>
                </ItemsControl.Background>        
            </ItemsControl>
            <ContentControl Content="{TemplateBinding Content}" />
        </Grid>
    </ScrollContentPresenter.Content>                                        
</ScrollContentPresenter>