diff --git a/SunnyUI/Common/UGraphics.cs b/SunnyUI/Common/UGraphics.cs
index 282c3da4..df9784d3 100644
--- a/SunnyUI/Common/UGraphics.cs
+++ b/SunnyUI/Common/UGraphics.cs
@@ -120,62 +120,6 @@ namespace Sunny.UI
g.DrawString(text, font, br, x, y);
}
- ///
- /// 绘制字符串
- ///
- /// 绘图图元
- /// 字符串
- /// 字体
- /// 颜色
- /// 大小
- /// 边距
- /// 位置位置
- public static void DrawString(this Graphics g, string str, Font font, Color color, Size size, Padding padding, ContentAlignment align, int offsetX = 0, int offsetY = 0)
- {
- if (str.IsNullOrEmpty()) return;
- SizeF sf = g.MeasureString(str, font);
- using Brush br = color.Brush();
- switch (align)
- {
- case ContentAlignment.MiddleCenter:
- g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX,
- padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
- break;
-
- case ContentAlignment.TopLeft:
- g.DrawString(str, font, br, padding.Left + offsetX, padding.Top + offsetY);
- break;
-
- case ContentAlignment.TopCenter:
- g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX, padding.Top + offsetY);
- break;
-
- case ContentAlignment.TopRight:
- g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, padding.Top + offsetY);
- break;
-
- case ContentAlignment.MiddleLeft:
- g.DrawString(str, font, br, padding.Left + offsetX, padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
- break;
-
- case ContentAlignment.MiddleRight:
- g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
- break;
-
- case ContentAlignment.BottomLeft:
- g.DrawString(str, font, br, padding.Left + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
- break;
-
- case ContentAlignment.BottomCenter:
- g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
- break;
-
- case ContentAlignment.BottomRight:
- g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
- break;
- }
- }
-
///
/// 以文字中心点为原点,旋转文字
///
diff --git a/SunnyUI/Controls/UIProcessBar.cs b/SunnyUI/Controls/UIProcessBar.cs
index f6b62948..50965534 100644
--- a/SunnyUI/Controls/UIProcessBar.cs
+++ b/SunnyUI/Controls/UIProcessBar.cs
@@ -154,7 +154,7 @@ namespace Sunny.UI
if (ShowValue && canShow)
{
- e.Graphics.DrawString(processText, Font, foreColor, Size, Padding, TextAlign);
+ DrawString(e.Graphics, processText, Font, foreColor, Size, Padding, TextAlign);
}
if (image == null || image.Width != Width || image.Height != Height || imageRadius != Radius)
@@ -173,7 +173,7 @@ namespace Sunny.UI
g.DrawRoundRectangle(rectColor, rect, Radius);
if (ShowValue && canShow)
{
- g.DrawString(processText, Font, fillColor, Size, Padding, TextAlign);
+ DrawString(g, processText, Font, fillColor, Size, Padding, TextAlign);
}
g.Dispose();
@@ -194,6 +194,52 @@ namespace Sunny.UI
}
}
+ private void DrawString(Graphics g, string str, Font font, Color color, Size size, Padding padding, ContentAlignment align, int offsetX = 0, int offsetY = 0)
+ {
+ if (str.IsNullOrEmpty()) return;
+ SizeF sf = g.MeasureString(str, font);
+ using Brush br = color.Brush();
+ switch (align)
+ {
+ case ContentAlignment.MiddleCenter:
+ g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX,
+ padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
+ break;
+
+ case ContentAlignment.TopLeft:
+ g.DrawString(str, font, br, padding.Left + offsetX, padding.Top + offsetY);
+ break;
+
+ case ContentAlignment.TopCenter:
+ g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX, padding.Top + offsetY);
+ break;
+
+ case ContentAlignment.TopRight:
+ g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, padding.Top + offsetY);
+ break;
+
+ case ContentAlignment.MiddleLeft:
+ g.DrawString(str, font, br, padding.Left + offsetX, padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
+ break;
+
+ case ContentAlignment.MiddleRight:
+ g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, padding.Top + (size.Height - sf.Height - padding.Top - padding.Bottom) / 2.0f + offsetY);
+ break;
+
+ case ContentAlignment.BottomLeft:
+ g.DrawString(str, font, br, padding.Left + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
+ break;
+
+ case ContentAlignment.BottomCenter:
+ g.DrawString(str, font, br, padding.Left + (size.Width - sf.Width - padding.Left - padding.Right) / 2.0f + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
+ break;
+
+ case ContentAlignment.BottomRight:
+ g.DrawString(str, font, br, size.Width - sf.Width - padding.Right + offsetX, size.Height - sf.Height - padding.Bottom + offsetY);
+ break;
+ }
+ }
+
///
/// 重载控件尺寸变更
///