我想显示一个范围从 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 处显示刻度线,即最小值和最大值。
有没有办法隐藏这些最小/最大刻度线?!我检查了所有属性并尝试更改其中一些属性,但到目前为止没有成功。
一种方法是为滑块提供您自己的 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
该网站讨论了显示编号的刻度,但您应该能够从中了解您需要了解的内容。
归档时间: |
|
查看次数: |
5348 次 |
最近记录: |