隐藏WPF Slider中Min和Max的刻度

时间:2010-03-12 12:55:21

标签: wpf slider

我想显示一个范围从0.5到1.5的滑块,只有一个刻度标记位于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}"/>

然而,除了1.0处的刻度标记外,此Slider还显示0.5和1.5的刻度线,即最小值和最大值。

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

2 个答案:

答案 0 :(得分:4)

一种方法是为Slider提供自己的ControlTemplate。如果您查看默认的Slider ControlTemplate(在MSDN上可用),您将看到Slider上的Ticks由名为TickBar的类实现。
从TickBar类继承并覆盖其OnRender()方法将允许您绘制所需的刻度。你可以在这里获得真正的创意:即编号的刻度,不同的颜色/样式等......或者在你的情况下,只是不要在最小/最大位置绘制刻度。
然后用你的新TickBar sans min / max ticks替换自定义Slider ControlTemplate中的默认TickBar,你就可以了。

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

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

答案 1 :(得分:-1)

请注意,您可以将滑块前景画笔设置为透明,这将无形地绘制任何/所有刻度线。然后,您可以使用滑块之外的元素/控件添加中心刻度线(例如,同时放置滑块线形状元素相同的网格单元格,居中对齐 Line 元素。)

不优雅,但具有易于完成的优势。

相关问题