gridsplitter wpf边框的虚线

Rya*_*ald 0 c# wpf gridsplitter

有没有办法让我的边界而不是围绕它的实线变成虚线?我只希望它出现在左侧和右侧,顶部和底部应该没有任何东西.

<Grid Grid.IsSharedSizeScope="True">
    <Grid.ColumnDefinitions>
        <ColumnDefinition SharedSizeGroup="A" Width="Auto"/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition/>
        <ColumnDefinition Width="Auto"/>
        <ColumnDefinition SharedSizeGroup="A" Width="Auto"/>
    </Grid.ColumnDefinitions>

    <Label Content="Shnarf Left" Background="Azure" Grid.Column="0"/>
    <TextBlock Text="Shnarf Middle" Background="Lavender" Grid.Column="2" TextWrapping="Wrap"/>
    <Label Content="Shnarf Right" Background="Moccasin" Grid.Column="4"/>

    <GridSplitter Grid.Column="1" Width="8"
                  HorizontalAlignment="Center" VerticalAlignment="Stretch" ShowsPreview="True" BorderBrush="Black" BorderThickness="1,0,1,0"/>
    <GridSplitter Grid.Column="3" Width="8" Background="DarkSlateBlue"
                  HorizontalAlignment="Center" VerticalAlignment="Stretch" ShowsPreview="True"/>
</Grid>
Run Code Online (Sandbox Code Playgroud)

Nik*_*ava 5

以下代码工作正常,您可以随意自定义!请注意,视口确定行中短划线的大小.在这种情况下,它会生成八个像素的短划线.Viewport ="0,0,4,4"会给你四个像素的破折号. 对于边境:

<Border BorderThickness="1,0,1,1">
    <Border.BorderBrush>
        <DrawingBrush Viewport="0,0,8,8" ViewportUnits="Absolute" TileMode="Tile">
            <DrawingBrush.Drawing>
                <DrawingGroup>
                    <GeometryDrawing Brush="Black">
                        <GeometryDrawing.Geometry>
                            <GeometryGroup>
                                <RectangleGeometry Rect="0,0,50,50" />
                                <RectangleGeometry Rect="50,50,50,50" />
                            </GeometryGroup>
                        </GeometryDrawing.Geometry>
                    </GeometryDrawing>
                </DrawingGroup>
            </DrawingBrush.Drawing>
        </DrawingBrush>
    </Border.BorderBrush>
    <TextBlock Text="Border Content!" Margin="5"/>
</Border>
Run Code Online (Sandbox Code Playgroud)

对于GridSplitter:

<Style x:Key="GridSplitterStyle1" TargetType="{x:Type GridSplitter}">
    <Setter Property="Background" Value="Yellow"/>
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type GridSplitter}">
                <Border BorderThickness="1,1,1,1">
                    <Border.BorderBrush>
                        <DrawingBrush Viewport="0,0,8,8" ViewportUnits="Absolute" TileMode="Tile">
                            <DrawingBrush.Drawing>
                                <DrawingGroup>
                                    <GeometryDrawing Brush="Red">
                                        <GeometryDrawing.Geometry>
                                            <GeometryGroup>
                                                <RectangleGeometry Rect="0,0,50,50" />
                                                <RectangleGeometry Rect="50,50,50,50" />
                                            </GeometryGroup>
                                        </GeometryDrawing.Geometry>
                                    </GeometryDrawing>
                                </DrawingGroup>
                            </DrawingBrush.Drawing>
                        </DrawingBrush>
                    </Border.BorderBrush>
                </Border>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)