自定义GridSplitter不调整大小

时间:2017-12-12 14:41:06

标签: wpf xaml controltemplate wpf-style gridsplitter

我想使用一些自定义代码模拟我的GridSplitter,但是当我覆盖ControlTemplate时它似乎停止工作。

我的代码如下所示:

<Style x:Key="Vertical_GridSplitter" TargetType="{x:Type GridSplitter}" BasedOn="{StaticResource {x:Type GridSplitter}}">
    <Setter Property="BorderBrush" Value="Transparent" />
    <Setter Property="Background" Value="Orange" />
    <Setter Property="HorizontalAlignment" Value="Left" />
    <Setter Property="VerticalAlignment" Value="Stretch" />
    <Setter Property="Margin" Value="0,5,0,5" />

    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="{x:Type GridSplitter}">

                <Border BorderBrush="{TemplateBinding BorderBrush}"
                        BorderThickness="0"
                        Background="{TemplateBinding Background}"
                        Width="3"
                        HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                        VerticalAlignment="{TemplateBinding VerticalAlignment}">

                </Border>
            </ControlTemplate>                
        </Setter.Value>
    </Setter>
</Style>

我确定问题出现在这里,而不是在View本身,因为如果我使用默认的GridSplitter而没有我的样式,它就可以了。使用我的代码,应用样式,鼠标光标变为箭头,但点击GridSplitter并拖动它什么也没做......

1 个答案:

答案 0 :(得分:0)

自己找到答案。问题出在这里:

<Setter Property="HorizontalAlignment" Value="Left" />

应该是:

<Setter Property="HorizontalAlignment" Value="Stretch" />