在.NET图表中只能在X轴中使用自定义标签 [英] Use only custom label in X-axis in .NET chart
问题描述
我在C#中创建一个.NET线图,X轴间隔为周。对于我的项目,我只想使用自定义标签,但现在我仍然想要网格线。有没有人知道隐藏默认X-Axis标签而仍保留自定义标签的方法?
I'm making a .NET line graph in C# with an X-axis interval of weeks. For my project, I only want to be using the custom label, but for now I still want the gridlines. Does anyone know a way to hide the default X-Axis labels while still keeping the custom labels?
我试过:
Chart4.ChartAreas[0].AxisX.LabelStyle.Enabled = false;
显而易见的结果是没有应用标签,这不是我想要做的。
The obvious result is that there were no labels applied, which is not what I was trying to do.
EDIT:
生成原始行的代码如下:
The code for generating the original rows was this:
Chart4.ChartAreas["ChartArea1"].AxisX.LabelStyle.Format = "M";
自定义标签的代码如下:
And the code for the custom label was this:
int month = XValues[0].Month;
var XAxis = Chart4.ChartAreas[0].AxisX;
DateTime StartMonthPos = XValues[0];
DateTime EndPos = new DateTime();
foreach (DateTime Date in XValues)
{
EndPos = Date;
if (Date.Month != month)
{
Chart4.ChartAreas[0].AxisX.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None);
StartMonthPos = Date;
}
month = Date.Month;
}
XAxis.CustomLabels.Add(StartMonthPos.ToOADate(), EndPos.ToOADate(), StartMonthPos.ToString("MMMM"), 1, LabelMarkStyle.None);
图表如下所示:
它应该如下所示:
推荐答案
好吧,我看过标签
上的 MSDN 。为了使自定义标签出现在正常标签的位置,我将 RowIndex
参数设置为 0
默认标签行。自定义行的最终代码如下所示:
Alright, I looked into Label
controls on MSDN. In order to make the custom label appear in place of the normal label, I set the RowIndex
parameter to 0
, replacing the default label row. The final code for the custom rows looked like this:
int month = XValues[0].Month;
var XAxis = Chart4.ChartAreas[0].AxisX;
DateTime StartMonthPos = XValues[0];
DateTime EndPos = new DateTime();
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);
这篇关于在.NET图表中只能在X轴中使用自定义标签的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!