【发布时间】:2017-12-12 14:41:05
【问题描述】:
我想用一些自定义代码模板化我的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并拖动它什么都不做......
【问题讨论】:
-
摆脱 Margin setter 和 Width="3" ?如果您的问题,请提供回购:stackoverflow.com/help/mcve。恐怕在不提供回购协议的情况下声称“它不起作用”没有多大意义。
-
它会改变什么?我希望 GridSplitter 看起来像这样。正如我所说,样式被正确应用,只是它不像 GridSplitter 那样工作(不提供通过拖动来调整其他内容大小的功能)。
标签: wpf xaml controltemplate wpf-style gridsplitter