2010-03-12 35 views
3

我想在1.0顯示一個滑塊範圍從0.5到1.5與只有一個刻度標記的中心和默認值。在1.0隱藏在蜱Min和Max在WPF滑塊

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

然而,除了一個刻度標記此滑塊還示出了在0.5和1.5,即,最小值和最大值的刻度標記:我已經定義了一個滑塊如下。

有沒有辦法隱藏這些最小/最大刻度線?我檢查了所有的屬性,並嘗試改變其中的一些,但迄今爲止沒有成功。

回答

3

一種方式做這將是提供自己的滑塊控件模板。如果您查看默認的Slider ControlTemplate(可在MSDN上獲得),您會看到Slider上的Ticks由名爲TickBar的類實現。
繼承了TickBar類並覆蓋其的OnRender()方法可以讓你畫不過你想要的蜱。您可以在這裏獲得真正的創意:例如編號的刻度,不同的顏色/樣式等......或者您的情況下,不要在最小/最大位置繪製刻度。
則替換自定義滑塊控件模板默認TickBar跟你的新TickBar SANS最小/最大刻度,你是好去。

有關從TickBar繼承看看這個代碼示例: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/6b926273-b0a1-43ab-be81-f2e9b42d701a

有關顯示編號蜱但你應該能夠了解你需要從它知道什麼該網站舉行了會談。

+0

感謝您的回答。我沒有嘗試這個,但我想它會起作用。但是,我正在尋找一個更簡單的解決方案,比如設置一個屬性。如果您提供「Ticks」屬性,然後在其他位置顯示刻度標記,我認爲這是糟糕的設計。更糟糕的是,你不能讓他們離開(輕鬆)。無論如何,我想我必須堅持下去,因爲我不想/不能像你所描述的那樣。無論如何,我已經接受了你的答案,因爲它可以解決問題。 – gehho 2010-05-17 09:19:24

-1

請注意,您可以在前景滑塊設置透明,這將吸引任何/所有刻度線不可見。然後,可以使用滑塊的外側的元件/控制添加的中心蜱(例如,放兩者滑塊並以相同的格單元中的形狀元件,中心對準元素)。

不優雅,但具有容易實現的優點。

+0

您可以將TickPlacement設置爲「無」,以便根本不繪製任何刻度標記。 – 2015-09-03 09:32:34

+0

問題是如何擁有一個刻度線,而不是如何去除所有的刻度線。我的答案是針對那些不想使用ControlTemplate的人,這些人超出了許多人的能力/興趣水平。 – dapi 2016-01-03 19:41:46

+0

儘管您的解決方案的第一步是刪除所有刻度。只需將TickPlacement設置爲「無」即可輕鬆完成。 – 2016-01-04 07:59:19