我想创建一个全局样式,它会影响我的应用程序的每个“GridSplitter”,以便在鼠标结束时更改其光标外观。
此代码适用于垂直GridSplitter:
<Style TargetType="GridSplitter">
<Setter Property="Cursor" Value="SizeWe"></Setter>
</Style>
但我不知道如何检测其方向并在适当时将值设置为“SizeNs”。 我不想更改每个GridSplitter代码。我想要一种可以应用于每个Gridsplitter的样式,而无需设置资源键。
有什么想法吗?
对于所有拥有XamlParseException的人:'在'System.Windows.Baml2006.TypeConverterMarkupExtension'上提供值引发异常。行号“15”和行位置“9”。
确保您具有正确的游标名称语法。
答案 0 :(得分:1)
您可以在控件模板触发器中使用ResizeDirection
属性并设置适当的光标。
<Style TargetType="GridSplitter">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="GridSplitter">
<Rectangle Fill="{TemplateBinding Background}"></Rectangle>
<ControlTemplate.Triggers>
<Trigger Property="ResizeDirection" Value="Columns">
<Setter Property="Cursor" Value="SizeNS"></Setter>
</Trigger>
<Trigger Property="ResizeDirection" Value="Rows">
<Setter Property="Cursor" Value="SizeWE"></Setter>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>