代码之家  ›  专栏  ›  技术社区  ›  gehho

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

  •  4
  • gehho  · 技术社区  · 14 年前

    我想显示一个从0.5到1.5的滑块 1.0时只有一个刻度线 标记中心和默认值。我定义了一个滑块如下:

    <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的刻度线外,此滑块还显示0.5和1.5的刻度线,即最小值和最大值。

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

    2 回复  |  直到 10 年前
        1
  •  4
  •   Bojin Li    14 年前

    一种方法是为滑块提供自己的控制模板。如果您查看默认的Slider ControlTemplate(在msdn上可用),您将看到Slider上的刻度由一个名为Tickbar的类实现。
    从Tickbar类继承并重写其onRender()方法将允许您根据需要绘制刻度。你可以在这里获得真正的创造性:即编号的节拍,不同的颜色/风格等…或者,在您的情况下,不要在最小/最大位置绘制刻度。
    然后用新的无最小/最大刻度的刻度线替换自定义滑块控件模板中的默认刻度线,这样就可以继续了。

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

    该网站讨论显示数字记号,但你应该能够从中了解你需要知道的东西。

        2
  •  -1
  •   dapi    10 年前

    请注意,您可以设置 前景 A的画笔 滑块 透明的 ,这将在不可见的情况下绘制任何/所有刻度线。然后可以使用外部的元素/控件添加中心标记。 滑块 (例如,将 滑块 和A 线 形状元素在同一网格单元中,居中对齐 线 元素)。

    不优雅,但有做起来容易的优点。