在 WPF 滑块中隐藏最小和最大刻度

geh*_*hho 5 wpf slider

我想显示一个范围从 0.5 到 1.5 的 Slider,在 1.0 处只有一个刻度线来标记中心和默认值。我已经定义了一个 Slider 如下:

<Slider Minimum="0.5" Maximum="1.5"
        IsMoveToPointEnabled="True" IsSnapToTickEnabled="False"
        Orientation="Horizontal"
        Ticks="1.0"
        TickPlacement="BottomRight"
        Value="{Binding SomeProperty, Mode=TwoWay}"/>
Run Code Online (Sandbox Code Playgroud)

但是,除了 1.0 处的刻度线之外,此滑块还在 0.5 和 1.5 处显示刻度线,即最小值和最大值。

有没有办法隐藏这些最小/最大刻度线?!我检查了所有属性并尝试更改其中一些属性,但到目前为止没有成功。

Boj*_* Li 4

一种方法是为滑块提供您自己的 ControlTemplate。如果您查看默认的 Slider ControlTemplate(可在 MSDN 上找到),您将看到 Slider 上的 Ticks 是由名为 TickBar 的类实现的。
从 TickBar 类继承并重写其 OnRender() 方法将允许您根据需要绘制刻度线。您可以在这里发挥真正的创意:即编号的刻度线、不同的颜色/样式等...或者在您的情况下,只需不要在最小/最大位置绘制刻度线。
然后将自定义 Slider ControlTemplate 中的默认 TickBar 替换为无最小/最大刻度的新 TickBar,就可以开始了。

有关从 TickBar 继承的代码示例,请参见: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/6b926273-b0a1-43ab-be81-f2e9b42d701a

该网站讨论了显示编号的刻度,但您应该能够从中了解您需要了解的内容。