* UIBarChart: 增加X轴文字倾斜

This commit is contained in:
Sunny 2022-03-08 21:11:17 +08:00
parent 53683cf884
commit 75845313cb
4 changed files with 11 additions and 4 deletions

Binary file not shown.

Binary file not shown.

View File

@ -51,17 +51,19 @@ namespace Sunny.UI.Demo
option.XAxis.Data.Add("D1");
option.XAxis.Data.Add("D2");
option.XAxis.Data.Add("D3");
option.XAxis.Data.Add("D223");
option.XAxis.Data.Add("D4");
option.XAxis.Data.Add("D5");
option.XAxis.Data.Add("D6");
option.XAxis.Data.Add("D7");
option.XAxis.Data.Add("D7333");
option.XAxis.Data.Add("D8");
option.ToolTip.Visible = true;
option.YAxis.Scale = true;
option.XAxis.Name = "日期";
option.XAxis.AxisLabel.Angle = 60;//(0° ~ 90°)
option.YAxis.Name = "数值";
option.YAxis.AxisLabel.DecimalCount = 1;
option.YAxis.AxisLabel.AutoFormat = false;

View File

@ -20,6 +20,7 @@
* 2020-08-21: V2.2.7
* 2021-07-22: V3.0.5
* 2021-01-01: V3.0.9
* 2022-03-08: V3.1.1 X轴文字倾斜
******************************************************************************/
using System;
@ -500,8 +501,12 @@ namespace Sunny.UI
foreach (var data in Option.XAxis.Data)
{
SizeF sf = g.MeasureString(data, TempFont);
g.DrawString(data, TempFont, ForeColor, start - sf.Width / 2.0f, DrawOrigin.Y + Option.XAxis.AxisTick.Length);
start += DrawBarWidth;
int angle = (Option.XAxis.AxisLabel.Angle + 36000) % 360;
if (angle > 0 && angle <= 90)
g.DrawString(data, TempFont, ForeColor, new PointF(start, DrawOrigin.Y),
new StringFormat() { Alignment = StringAlignment.Far }, (3600 - Option.XAxis.AxisLabel.Angle) % 360);
else
g.DrawString(data, TempFont, ForeColor, start - sf.Width / 2.0f, DrawOrigin.Y + Option.XAxis.AxisTick.Length); start += DrawBarWidth;
}
SizeF sfname = g.MeasureString(Option.XAxis.Name, TempFont);