自定義垂直進度條

2022-08-31 15:12:25 字數 3887 閱讀 8295

using system;

using system.collections;

using system.componentmodel;

using system.drawing;

using system.windows.forms;

namespace verticalprogressbar

///

/// 列舉型進度條邊框樣式。

///

public enum borderstyles

///

/// 描畫一格垂直進度條控制項。

///

[description("vertical progress bar")]

[toolboxbitmap(typeof(progressbar))]

[browsable(false)]

public partial class verticalprogressbar : usercontrol

///

/// 百分比。

///

[description("verticalprogressbar percent")]

[category("verticalprogressbar")]

[refreshproperties(refreshproperties.all)]

public bool percent

set}

///

/// 最大值。

///

[description("verticalprogressbar maximum value")]

[category("verticalprogressbar")]

[refreshproperties(refreshproperties.all)]

public int maximum

setif (m_maximum < m_value)

invalidate();}}

///

/// 最小值。

///

[description("verticalprogressbar minimum value")]

[category("verticalprogressbar")]

[refreshproperties(refreshproperties.all)]

public int minimum

setif (m_minimum > m_value)

invalidate();}}

///

/// 步長。

///

[description("verticalprogressbar step")]

[category("verticalprogressbar")]

[refreshproperties(refreshproperties.all)]

public int step

set}

///

/// 當前值。

///

[description("verticalprogressbar current value")]

[category("verticalprogressbar")]

public int value

setif (m_value < m_minimum)

invalidate();}}

///

/// 進度條顏色。

///

[description("verticalprogressbar color")]

[category("verticalprogressbar")]

[refreshproperties(refreshproperties.all)]

public system.drawing.color color

set}

///

/// 進度條邊框顏色。

///

[description("verticalprogressbar border style")]

[category("verticalprogressbar")]

public new borderstyles borderstyle

set}

///

/// 進度條樣式。

///

[description("verticalprogressbar style")]

[category("verticalprogressbar")]

public styles style

set}

///

/// 執行步長。

///

public void performstep()

if (m_value < m_minimum)

invalidate();

return;

}///

/// 改變進度。

///

///

public void increment(int value)

if (m_value < m_minimum)

invalidate();

return;

}#endregion

///

/// 描畫進度條邊框。

///

///

private void drawborder(graphics dc)

}///

/// 描畫進度條主體。

///

/// graphics物件

private void drawbar(graphics dc)

else

else

}//進度條高度。

height = (m_value - m_minimum) * this.height / (m_maximum - m_minimum);

if (m_style == styles.solid)

if (m_style == styles.classic)

}///

/// 描畫進度條樣式為solid

///

/// graphics物件

///

///

///

///

private void drawsolidbar(graphics dc, int x, int y, int width, int height)

///

/// 描畫進度條樣式為classic

///

/// graphics 物件

///

///

///

///

private void drawclassicbar(graphics dc, int x, int y, int width, int height)

}///

/// 開始描畫。

///

/// painteventargs 物件

protected override void onpaint(painteventargs e)

//描畫邊框。

drawborder(dc);

base.onpaint(e);

}///

/// 描畫字型。

///

/// painteventargs 物件

public void drawstringrectanglefformat(painteventargs e)

///

/// 改變大小

///

/// eventargs 物件

protected override void onsizechanged(eventargs 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...