Window自帶滑塊控件只有一個滑塊,其功能也很簡單。外表也很丑陋。
該控件是繼承於 Control 基類開發的。功能可以添加多個滑點,每個滑點可以自定義顏色,滑塊的形狀也可以自定義,滑塊鎖定,漸變背景色。
這個控件滑點數擴展后功能強大了很多,例如做兩點間范圍的選擇功能,還有分段值功能例如像多色漸變,你可以利用這個控件設置不同顏色在漸變中位置和比例。
至於控件的提示功能目前的做法是直接在控件的繪制區里面呢直接用GDI繪制的,這樣會導致控件占用大量面積,如果你有興趣的話你可以利用彈層去完善這一部分的功能。
該控件有很多屬性和事件已經被屏蔽掉了。新增事件有 ValueChanged 、 GlobalValueChanged 兩個事件。這兩個事件分別對應滑塊的值修改和全局值修改。
1.滑條可以通過 BarColorItems 集合屬性 進行設置漸變背景顏色,但只有滑塊數量為1個才有效。
2.通過 Orientation 屬性設置滑條的方向。
3.滑條的最大最小值分別通過 MaxValue MinValue 屬性進行設置。
4.滑條兩頭圓角通過 SlideBarRadius 屬性設置。
5.滑塊進度值可以通過 BarProgressItems 集合屬性設置忽快值漸變背景色,但只有滑塊數量為1個才有效。
6.滑塊的數量可以通過 Items 集合屬性添加。每個滑塊都有以下屬性,每個滑塊可以設置屬於自己獨立的顏色,如果沒有設置獨立的顏色將會采取統一的顏色。
7.DefaultValue 屬性只能用來初始化滑塊的初始值,這個屬性只能在設計器使用,之后要讀取滑塊的值是通過 Value 屬性來操作。
8.SlideLock 屬性可以設置滑塊鎖定,這種情況下該滑塊是不能通過鼠標、鍵盤、來進行移動。以下紅色和紫色的滑塊就處於鎖定狀態。
9.滑塊值分兩種情況分別通過 UpdateValue 值修改方法、 UpdateGlobalValue 全局值修改方法。
10.上面圖片如果通過 UpdateValue 方法修改綠色滑塊值為70,那綠色滑塊的值最大只能去到58也就是藍色滑塊的值。如下
11.如果是通過 UpdateGlobalValue 方法修改綠色滑塊值為90,那綠色滑塊和藍色滑塊的值都為80。之所以為80是因為紫色滑塊狀態為鎖定,紫色的值是不能更改的。所以把綠色和藍色都攔了下來。如下
12.該控件可以通過 Tab 鍵使控件激活從而使用鍵盤來修改滑塊值,這種修改值方式為 UpdateValue 值修改方法。當控件被激活后滑塊獲焦后滑塊會出現一個虛線框。我們可以通過鍵盤的左右鍵對滑塊進行切換,當選中滑塊后再通多上下鍵來修改滑塊的值。如下
13.滑塊獲焦后也可以通過鼠標滾輪進行修改滑塊的值,這種修改值方式為 UpdateValue 值修改方法。如下
14.還有通過鼠標左鍵對滑塊進行的是 UpdateValue 值修改方法,如果是通過鼠標右鍵對滑塊進行的則是 UpdateGlobalValue 全局值修改方法。
重寫的方法如下
新增類如下
新增屬性如下
源碼下載:多點滑塊滑桿控件.zip