我正在使用X轴上的自定义标签在C#中制作图表。比例以日期为单位,并根据所选值(从一个月到两年)而变化。它工作得很好,每当我改变比例的值时,图表的宽度保持不变;它只是调整条宽。
当我尝试旋转标签时会出现问题。当我这样做时,它会在每个不同的比例上以不同的方式调整所有条的大小,并且永远不会占用与原件相同的空间量。我希望能够在不调整所有内容的情况下旋转标签。我可以这样做吗?为什么会这样?我该如何解决?
我用来添加自定义标签的代码是:
DateTime StartMonthPos = XValues[0];
DateTime EndPos = new DateTime();
if (Time == 6 || Time == 12 || Time == 24)
{
foreach (DateTime Date in XValues)
{
EndPos = Date;
if (Date.Month != month)
{
Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
StartMonthPos = Date;
}
month = Date.Month;
}
XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 0, LabelMarkStyle.None);
}
else
{
foreach (DateTime Date in XValues)
{
EndPos = Date;
Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
StartMonthPos = Date;
}
XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("M"), 0, LabelMarkStyle.None);
}
如果我在此之后添加这行代码,事情就会搞砸:
Chart4.ChartAreas[0].AxisX.LabelStyle.Angle = 0;
以下是问题代码之前的图片:
这是后续图片:
答案 0 :(得分:2)
请检查this article on how to easily rotate axis lables of a WPF chart。
“这里的关键是自定义用于呈现标签的AxisLabel实例的模板。通过为Style
提供Template Setter
来实现这一点很简单。 AxisLabelStyle
子类的Axis
属性 ...
该帖子涉及相当多的XAML,但......
正如你所看到的,这条线无法获得轮换:
Chart4.ChartAreas[0].AxisX.LabelStyle.Angle = 0;
轮换;)
还有更多内容