用WPF實現帶滑塊的進度條

2021-06-01 06:09:50 字數 1299 閱讀 1886

背景:

哎,用wpf的人還是太少,在網上也看到很多關於wpf未來如何發展的討論,眾說紛紜。總之,wpf的定義就是windows presentationfoundation,它是微軟推出的專門針對表示層,也就是ui的乙個東東。而且,伴隨wpf而生的xaml語言,也將因為windows 8的大力推廣而擁有更廣闊的未來「開發部高階副總裁s. somasegar對外宣布微軟的xaml技術團隊直接併入windows部門」。

個人覺得,利用wpf可以很方便的做出在winform裡較難實現的東東,而且效果上wpf也具有更大的發揮空間。而且wpf和winform之間相互利用是很方便的。下面講乙個具體的例子。

具體**:

首先在blend3中新建乙個usercontrol,結構如下:

pbar是乙個progressbar,gxp是乙個slider,textblock用來顯示百分數。將slider重疊在progressbar上,然後通過slider來調節進度。如果不做任何修改,效果就是這樣。

我們需要通過編輯slider的模板將slider中橫著的那條線隱藏掉。「編輯模板」這個工具真是很好用啊,你可以很方便的修改預設風格的wpf控制項,而且所見即所得,這在winform中就不可能了。現在我們可以看到slider的內部結構了!

我們發現「[border]」就是那條要隱藏的線,我們直接在屬性裡將它設為隱藏就ok了。下面的步驟是什麼呢?外觀上我們已經基本搞定了,如果你還有其它的外觀需求,比如要設成這個顏色那個顏色的,都可以通過編輯模板來搞定。下面的步驟就是進度值的同步,當你調整滑塊的時候,進度條沒有任何反應,原因就是progressbar的value沒有和slider的value同步起來。

方法就是繫結binding,binding是wpf的核心之一,確實很有用,而且有很大的發揮空間。在progressbar的屬性裡面加上:

value=""

效果就出來了!

最後就是怎麼在winform中呼叫wpf控制項。先新增4個wpf引用(裝了blend就會有),presentationcore、presentationframework、windowsbase、windowsformsintegration。然後新增usingsystem.windows.forms.integration;

elementhostehost = new elementhost();

ehost.width = 152;

ehost.height = 21;

m_progressuc = newprogressgxp.maincontrol();

ehost.child = m_progressuc;

panel1.controls.add( ehost );

flutter 雙滑塊的進度條

最近專案需要進行 區間選擇,網上找到乙個flutter帶雙滑塊的進度條外掛程式很好用,推薦給大家 syncfusion flutter sliders 18.4.48 beta這個外掛程式是國外一家知名外掛程式公司提供的,功能強大,他們還有其他外掛程式,比如圖表,日曆,等等,具體可在上搜尋syncf...

WPF手繪進度條

話說現在的專案中我要用進度條了。本想用自帶的那個processbar控制項,可是樣式不好看,加上自己本事有限,對wpf中的樣式相當的不熟。只好想別的辦法了。不知哪根兒神經一動,我想到了用rectangle控制項。知道這個控制項的一定就知道我是怎麼想的了。具體通過dispatchertimer類實現。...

wpf 進度條兩側圓角 WPF圓形進度條

如下圖 分別對應著 老版本 新版本 現在 做東西之前 肯定先網上找找看,一搜尋一大堆連線,當然也有一些ui框架帶這樣的控制項,我看了幾個,各種類和樣式繼承類,主要是和他們自己框架結合一起。僅僅為了乙個控制項,那樣做 簡單問題複雜化。下面是單獨介紹的一些有用鏈結.但是介於專案好多不能直接使用,因為有些...