顶部X轴标签未显示Windows窗体图表

时间:2016-01-22 16:21:44

标签: c# winforms mschart

我正在尝试为我正在为Windows Form开发的应用程序绘制图表。我正在使用图表控件,并以编程方式自定义它。

到目前为止我学到了很多东西,因为它是一个.NET控件,因此在这个问题上有很多关于Internet的文档。

然而,从昨天开始,有些事情让我失望:我已经为我的2D折线图(AxisX2和AxisY2)启用了两个二级标签。问题是这些轴的标签只显示第二个(AxisY2),尽管它们的创建方式和配置完全相同。

我已获得应用程序的屏幕截图,以便您可以看到我在说什么:

WinChart without top-label

下面给出了创建这两个辅助轴的代码:

        var xAxisTop = new Axis
        {
            Minimum = 0,
            Maximum = 100,
            Interval = 5.0,
            LabelStyle = new LabelStyle { ForeColor = Color.Black, Enabled = true, Font = new Font("Verdana", 18.0f) },
            Title = "Pos (%)",
            LineWidth = 2,
            MajorGrid = new Grid { LineColor = Color.DimGray },
            MinorGrid = new Grid { LineColor = Color.DimGray },
            IsMarksNextToAxis = true,
            Enabled = AxisEnabled.True
        };
        chartArea1.AxisX2 = xAxisTop;

        var yAxisTop = new Axis
        {
            Minimum = 0,
            Maximum = 100,
            Interval = 5.0,
            LabelStyle = new LabelStyle { ForeColor = Color.Black, Enabled = true, Font = new Font("Verdana", 18.0f) },
            Title = "Load (%)",
            LineWidth = 2,
            MajorGrid = new Grid { LineColor = Color.DimGray },
            MinorGrid = new Grid { LineColor = Color.DimGray },
            IsMarksNextToAxis = true,
            Enabled = AxisEnabled.True
        };
        chartArea1.AxisY2 = yAxisTop;

我真的不知道会发生什么。有人能帮助我吗?

1 个答案:

答案 0 :(得分:1)

你没有显示添加myMethod(s); 的代码,但我的水晶球说:很可能你的DataPoints两者都完全正常,你的问题源于你的Axes

您的X-Values照常使用数字,但如果您的Y-Values不是,它们似乎仍然可以,但它们不是!:{{1从你输入的字符串创建它们时显示得很好,但X-Values实际上都是Labels。在调试器中检查!!

当您尝试使用那些X-Values时,常见错误仅显示,例如使用数字格式字符串或进行计算,或者正如您所做的那样,通过为辅助0设置X-ValuesMinimum来尝试隐含使用它们。

由于所有值均为Maximum,因此X-Axis0之间没有空间,并且没有显示任何内容。

检查添加Minimum的代码并确保它添加数字,而不是X-Values的字符串!

请参阅here for a similar case及其讨论和解决方案!滚动到更新! ((SO仍然不允许在帖子中使用锚点:-())

更新:我刚刚发现另一个原因为什么辅助轴上的标签不显示:它们只显示< strong>还显示轴上的标签。如果你不想要,你必须不要禁用!相反,您可以设置他们的Maximum

显然这不是你的情况,因为主轴确实显示了它的标签。