c 自定義進度條

2022-03-18 07:37:48 字數 1909 閱讀 2693

有些時候我們做的程式需要進度條,而vs提供的控制項不是我們想要的。先看效果圖:

進度條閃爍動畫,當然背景可設為transparent

之前想手繪進度條線條的,結果控制項執行時會閃爍,所以直接用了panel控制項

原始碼:

[defaultevent("

progressclick")]

[toolboxbitmap(

typeof

(trackbar))]

public

partial

class

processbar : usercontrol

private

int locationx=0

; [description(

"單擊時x的座標")]

public

intlocationx

}private

int current = 0

; [description(

"當前進度")]

public

intcurrent

set }

private

bool isplay = false

; [description(""

)]

public

bool

isplay

set

}public

delegate

void mousehandle(object

sender,eventargs e);

[description(

"點下滑鼠")]

public

event

mousehandle barmousedown;

int picturetype = 0

;

private

void tmrcurrent_tick(object

sender, eventargs e)

else

graphicspath g =subgraphicspath(picture.image);

if (g == null) return

; picture.region = new

region(g);

}private

unsafe

static

graphicspath subgraphicspath(image img)

else

if (start > -1 && (p[0] == p0 && p[1] == p1 && p[2] == p2)) //

如果 之前的點是不透明 且 透明

if (x == width - 1 && start > -1) //

如果 之前的點是不透明 且 是最後乙個點

p += 3; //

} p +=offset;

} bitmap.unlockbits(bmdata);

bitmap.dispose();

//返回計算出來的不透明路徑

return

g; }

private

void paneltotal_mousedown(object

sender, mouseeventargs e)

}private

void panelcurrent_mousedown(object

sender, mouseeventargs e)}}

用到的素材:

直接右鍵另存為,之所以用黑色背景是因為是白色的看不見,不用多說了。

自定義進度條

自定義進度條 1 繪製底色 灰色 2 繪製進度 藍色 3 繪製最大的進度 純藍色 rectf rf new rectf 0,0,mwidth,mheight 繪製圓角矩形,背景色為畫筆顏色 mpaint.setcolor color.rgb 220,220,220 canvas.drawroundr...

自定義圓形進度條,繪製進度條

inte ce hmprogressview property nonatomic,weak uilabel label end implementation hmprogressview self drawrect self.bounds 重新繪製 在view上做乙個重繪的標記,當下次螢幕重新整理...

自定義 ProgressBar 進度條 自定義樣式

今天學習給progressbar換個樣式,先看效果圖 c h,e d8 z f j x 原理 在xml檔案中分別定義進度條背景 第一進度顏色 第二進度顏色,然後在progressbar的android progressdrawable屬性應用即可。6 j a7 c h b k h q y g s d...