Code Reference A collection of code for my reference (and perhaps other people too)

2Sep/090

GridSplitter style – Add a grip

The grid splitter on WPF is very useful, but not easy to style. I found some code to do this. VERY useful!

Horizontal:

    <LinearGradientBrush StartPoint="0,0" EndPoint="0,1" x:Key="panelBackgroundBrush">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="#FFE3EFFF" Offset="0" />
            <GradientStop Color="#FFAFD2FF" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>

    <Style x:Key="gridSplitterStyle" TargetType="{x:Type GridSplitter}">
        <Setter Property="FrameworkElement.Height" Value="8"/>
        <Setter Property="TextElement.Foreground" Value="#FF204D89" />
        <Setter Property="Border.BorderBrush" Value="#FF6593CF" />
        <Setter Property="Panel.Background" Value="{StaticResource panelBackgroundBrush}" />
        <Setter Property="Border.BorderThickness" Value="0,1,0,0" />
        <Setter Property="UIElement.SnapsToDevicePixels" Value="True" />
        <Setter Property="UIElement.Focusable" Value="False" />
        <Setter Property="Control.Padding" Value="7,7,7,7" />
        <Setter Property="FrameworkElement.Cursor" Value="SizeNS" />
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate>
                    <Border BorderThickness="{TemplateBinding Border.BorderThickness}" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}">
                        <Border BorderThickness="1,1,0,0" BorderBrush="{StaticResource panelBackgroundBrush}">
                            <Canvas Width="19" Height="3">
                                <Rectangle Fill="{StaticResource panelBackgroundBrush}" Width="2" Height="2" Canvas.Left="1" Canvas.Top="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush}" Width="2" Height="2" Canvas.Left="5" Canvas.Top="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush}" Width="2" Height="2" Canvas.Left="9" Canvas.Top="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush}" Width="2" Height="2" Canvas.Left="13" Canvas.Top="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush}" Width="2" Height="2" Canvas.Left="17" Canvas.Top="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Left="0" Canvas.Top="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Left="4" Canvas.Top="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Left="8" Canvas.Top="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Left="12" Canvas.Top="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Left="16" Canvas.Top="0" />
                            </Canvas>
                        </Border>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

Vertical:

<LinearGradientBrush StartPoint="0,0" EndPoint="0,1" x:Key="panelBackgroundBrush2">
        <LinearGradientBrush.GradientStops>
            <GradientStop Color="#FFE3EFFF" Offset="0" />
            <GradientStop Color="#FFAFD2FF" Offset="1" />
        </LinearGradientBrush.GradientStops>
    </LinearGradientBrush>

    <Style x:Key="gridSplitterVerticalStyle">
        <Setter Property="FrameworkElement.Height" Value="8"/>
        <Setter Property="TextElement.Foreground" Value="#FF204D89" />
        <Setter Property="Border.BorderBrush" Value="#FF6593CF" />
        <Setter Property="Panel.Background" Value="{StaticResource panelBackgroundBrush2}" />
        <Setter Property="Border.BorderThickness" Value="0,1,0,0" />
        <Setter Property="UIElement.SnapsToDevicePixels" Value="True" />
        <Setter Property="UIElement.Focusable" Value="False" />
        <Setter Property="Control.Padding" Value="7,7,7,7" />
        <Setter Property="FrameworkElement.Cursor" Value="SizeWE" />
        <Setter Property="Control.Template">
            <Setter.Value>
                <ControlTemplate>
                    <Border BorderThickness="{TemplateBinding Border.BorderThickness}" BorderBrush="{TemplateBinding Border.BorderBrush}" Background="{TemplateBinding Panel.Background}">
                        <Border BorderThickness="1,1,0,0" BorderBrush="{StaticResource panelBackgroundBrush2}">
                            <Canvas Width="3" Height="19">
                                <Rectangle Fill="{StaticResource panelBackgroundBrush2}" Width="2" Height="2" Canvas.Top="1" Canvas.Left="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush2}" Width="2" Height="2" Canvas.Top="5" Canvas.Left="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush2}" Width="2" Height="2" Canvas.Top="9" Canvas.Left="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush2}" Width="2" Height="2" Canvas.Top="13" Canvas.Left="0" />
                                <Rectangle Fill="{StaticResource panelBackgroundBrush2}" Width="2" Height="2" Canvas.Top="17" Canvas.Left="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Top="0" Canvas.Left="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Top="4" Canvas.Left="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Top="8" Canvas.Left="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Top="12" Canvas.Left="0" />
                                <Rectangle Fill="{TemplateBinding TextElement.Foreground}" Width="2" Height="2" Canvas.Top="16" Canvas.Left="0" />
                            </Canvas>
                        </Border>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
Tagged as: , Leave a comment
Comments (0) Trackbacks (0)

No comments yet.


Leave a comment

No trackbacks yet.