/// <summary>
/// 生成進度條
/// </summary>
/// <param name="graphics"></param>
/// <param name="brush"></param>
/// <param name="rect"></param>
/// <param name="radius"></param>
/// <param name="percentage"></param>
public static void ProcessBar(Graphics graphics, Brush brush, Rectangle rect, int radius, int percentage)
{
Pen pen = new Pen(new SolidBrush(Color.Gray));
#region 畫外圍邊框
// 畫左邊半圓
graphics.DrawArc(pen, rect.X, rect.Y, radius * 2, radius * 2, 90, 180);
// 畫下面線
graphics.DrawLine(pen,
new Point(rect.X + radius, rect.Y + radius * 2),
new Point(rect.X + rect.Width - radius, rect.Y + radius * 2));
// 畫右邊半圓
graphics.DrawArc(pen, rect.X + rect.Width - 2 * radius,
rect.Y, radius * 2, radius * 2,
-90, 180);
// 畫上面線
graphics.DrawLine(pen,
new Point(rect.X + rect.Width - radius, rect.Y),
new Point(rect.X + radius, rect.Y));
#endregion
#region 畫內部進度
if ((int)(rect.Width * percentage / 100) == 0)
return;
graphics.FillPath(brush, RoundRectangle(rect.X, rect.Y,
(int)(rect.Width * percentage / 100), 2 * radius, radius));
#endregion
}
C# GDI+ 生成自定義進度條
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.