views:

1021

answers:

1

Is there a way to set a vertical border on a WPF GridView?

The following works great for some nice horizontal borders. Is there a good way to add vertical borders to the GridView that lives inside this ListView?

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

Thanks in advance

A: 

try this... from 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>
Muad'Dib