我有一个从滑块类继承的类,使用自定义控件模板,并添加了一些依赖属性。 我想根据新属性在模板内触发触发器。
例如,我有一个名为ThumbIsVisible的新依赖属性,当其设置为false时,我只想隐藏滑块的拇指部分。 我的控件模板如下:
<Slider.Template>
<ControlTemplate TargetType="{x:Type Slider}">
...
<Track.Thumb>
<Thumb x:Name="m_Thumb" Style="{StaticResource SliderThumbStyle}" />
...
我想添加一个触发器,其代码看起来像这样:
<ControlTempate.Trigger>
<Trigger Property="ThumbIsVisible" Value="False">
<Setter TargetName="m_Thumb" Property="Visibility" Value="Collapsed" />
一开始我就能看出来这样行不通,因为控件模板的目标类型设置为Slider。但是,如果我将其更改为:
<ControlTemplate TargetType="{x:Type local:myCustomSlider}">
然后我遇到了模板类型与控件不同的问题。唯一的解决方法是使用local:myCustomSlider作为类型来创建xaml,而不是Slider。然而,这样做会导致VisualStudio的设计师和代码背后出现很多问题。
有没有人知道是否有标准方法可以解决所有这些问题?作为解决方法,我尝试通过代码向模板添加触发器,但是无法使其正常工作。