WPF手繪進度條

2021-09-08 08:19:52 字數 2924 閱讀 6510

話說現在的專案中我要用進度條了。本想用自帶的那個processbar控制項,可是樣式不好看,加上自己本事有限,對wpf中的樣式相當的不熟。只好想別的辦法了。不知哪根兒神經一動,我想到了用rectangle控制項。知道這個控制項的一定就知道我是怎麼想的了。具體通過dispatchertimer類實現。因為這個類有乙個interval屬性設定使用的多長時間完成,再加上乙個tick事件,每一毫秒就會觸發一下這個tick事件。當然大多數情況下我們不會這麼頻繁的觸發這個事件。具體就跟實際情況而定了。關於dispatchertimer類,還是讓msdn來講吧,下面貼出來**,做一下記錄。

xaml**如下:

<

window

x:class

="processbartest.mainwindow"

xmlns

=""xmlns:x

=""title

="mainwindow"

height

="254"

width

="525"

loaded

="window_loaded"

>

<

grid

height

="218"

>

<

rectangle

height

="28"

horizontalalignment

="left"

margin

="64,24,0,0"

name

="rectangle1"

stroke

="black"

verticalalignment

="top"

width

="0"

/>

<

label

content

="進度:"

height

="28"

horizontalalignment

="left"

margin

="12,26,0,0"

name

="label1"

verticalalignment

="top"

/>

<

button

content

="開 始"

height

="23"

horizontalalignment

="left"

margin

="416,183,0,0"

name

="button1"

verticalalignment

="top"

width

="75"

click

="button1_click"

/>

<

label

content

="0%"

margin

="71,24,0,166"

name

="label2"

horizontalalignment

="left"

width

="46"

/>

<

textbox

height

="108"

horizontalalignment

="left"

margin

="12,69,0,0"

name

="textbox1"

verticalalignment

="top"

width

="479"

="wrapwithoverflow"

/>

grid

>

window

>

public

partial

class mainwindow : window

thickness tmpt;

private

void button1_click(object sender, routedeventargs e)

else

this.textbox1.text = "

do working...

";//

注釋此句將百分比將會一直在進度條頭部顯示

this.label2.margin = new thickness(this.label2.margin.left - 52, this.label2.margin.top, this.label2.margin.right, this.label2.margin.bottom);

//取消注釋字型顏色為白色

= brushes.white;

//取消注釋字型為斜體

= fontstyles.italic;

brushprocessbar();

}private dispatchertimer dt;

private

int i = 1;

private

void brushprocessbar()

protected

void dt_tick(object sender, eventargs e)

this.label2.content = decimal.round(((decimal)i)/400*100,2) + "%";

if (i == 400)

}private

void window_loaded(object sender, routedeventargs e)

}

再給個程式執行效果圖吧?好吧。

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

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

繼續聊WPF 進度條

progressbar控制項與傳統winform使用方法完全一樣,我們只需關注 minimum 最小值,預設為0 maximum 最大值,預設為100.value 當前值。關鍵是它的控制項模板,因為系統的預設主題不好看,很多時候我們是需要自定義樣式和模板。老方法,先看定義 templateparta...

繼續聊WPF 進度條

progressbar控制項與傳統winform使用方法完全一樣,我們只需關注 minimum 最小值,預設為0 maximum 最大值,預設為100.value 當前值。關鍵是它的控制項模板,因為系統的預設主題不好看,很多時候我們是需要自定義樣式和模板。老方法,先看定義 從類定義中看到,progr...