是否有一种简单的方法可以覆盖Thumb
元素上Slider
的外观,而无需定义整个自定义Slider
样式?我想使用默认的Slider
,但只需将拇指的形状更改为圆形即可。我到目前为止看到的问题倾向于建议定义一个完整的自定义Slider
元素,但我正在寻找的是一种覆盖只是拇指而无需触摸的方法风格的其他部分 - 似乎应该有一些方法在xaml文件中的非常少的行中执行此操作。
答案 0 :(得分:1)
是。有。有点破解。应用样式后(例如在OnApplyTemplate()中),您可以执行FindName,即:
Thumb thumb = Template.FindName("Thumb", this) as Thumb;
然后替换控件模板:
thumb.Template = ...;
您不能在资源部分中设置一个以Thumb为目标的样式,因为默认样式会在Slider样式中被覆盖,但这是一个很好的解决方案,所以您不需要重新定义整体风格。您还可以在thumb.Template行中添加一些逻辑,以便在垂直或水平或操作系统等情况下选择不同的模板。