繼續聊WPF Thumb控制項

2021-08-26 10:41:37 字數 930 閱讀 7913

這個控制項,真不好介紹,msdn上也是草草幾句,反正就是可以讓使用者拖動的玩意兒,但是,你會發現,當你在該控制項上拖動時,它沒有反響,也就是說這個東西預設不做任何操作的,它是賴在那裡什麼都不幹,除非你去踢上腳。

而且,這個控制項就像乙個四方鴨,你踢一腳它就前進一步,你不踢,它又在那裡尸位素餐,什麼都不幹了。

還是用乙個例子來說明吧,不過,還是先說一下重要的東西。

thumb有幾個核心事件,都是與拖動有關。

往深一層想,它是什麼?對,就是我們常見的滾動條裡面的滑塊,就是我們在網格裡面可以拖動的分隔線,就是視窗右下角用於通過拖動來改變視窗大小的小東西。

thumb的核心事件有:

dragstarted——當你在它上面按下滑鼠左鍵,開始拖動時發生;

dragdelta——只要你的拖動仍在操作(沒鬆開滑鼠左鍵),它就會不斷地發生;

dragcompleted——不用說,這個肯定是在拖動操作結束後發生。

這三個事件怎麼用呢?可以這樣想象一下,開始拖動時把控制項變成灰色,在拖動過程中改變控制項的位置(前面說了,它預設不做任何動作,所以要手動處理),當完成後把外觀恢復,這樣就經過了這三個事件。

但是,我在這個例子中,使用了控制項模板的觸發器,這樣更方便一點。

請看演示

把thumb放到乙個canvas中,因為它是唯一乙個是絕對定位的控制項,接著我們為thumb定義模板,弄漂亮一點。

然後,在後台處理事件

private void thumb_dragdelta(object sender, system.windows.controls.primitives.dragdeltaeventargs e)

**不是很複雜,我就不多解釋了,主要是處理防止把thumb拖出我們可見邊沿,不然的話,就拖不回來了。

繼續聊WPF Thumb控制項

這個控制項,真不好介紹,msdn上也是草草幾句,反正就是可以讓使用者拖動的玩意兒,但是,你會發現,當你在該控制項上拖動時,它沒有反響,也就是說這個東西預設不做任何操作的,它是賴在那裡什麼都不幹,除非你去踢上腳。而且,這個控制項就像乙個四方鴨,你踢一腳它就前進一步,你不踢,它又在那裡尸位素餐,什麼都不...

繼續聊WPF Thumb控制項

這個控制項,真不好介紹,msdn上也是草草幾句,反正就是可以讓使用者拖動的玩意兒,但是,你會發現,當你在該控制項上拖動時,它沒有反響,也就是說這個東西預設不做任何操作的,它是賴在那裡什麼都不幹,除非你去踢上腳。而且,這個控制項就像乙個四方鴨,你踢一腳它就前進一步,你不踢,它又在那裡尸位素餐,什麼都不...

繼續聊WPF BulletDecorator控制項

這是乙個很簡單的控制項,無非就是控制專案的布局方式,其布局方式只有兩種 從左到右,從右到左。一 從左到右 二 從右到左 布局方向由flowdirection屬性來決定,所以我說這個控制項非常簡單 上面的截圖的xaml如下 帶矩形的項 下面例子展示乙個帶文字框的項 請輸入您的鳥名 為什麼這裡都用到la...