MSChart 轴根据文本大小移动

MSChart axis moves depending on text size

现在有人知道如何防止 Y 轴在文本区域增加时(水平)移动吗(例如,当在 Y 轴上的标签上显示 100 而不是 1 时)。

下图说明了这个问题;当标签上的数字加上小数点时,图表会调整大小并且 Y 轴会向右移动:

Axis 和其他一些 ChartElements 可能移动的原因是它们的 Positions 默认设置为 Automatic;因此,当标签需要更多 space 时,他们会得到它并且内部部分会减少。

所以如果你想防止你需要为它的 Position.

X 值设置一个明确的值

请注意,这些值占各个容器的 %

除非您设置特殊的 Crossing 值,否则主轴始终绘制在 InnerPlotArea 的左侧和底部。

所以你要设置位置,可能是这样的:

ChartArea ca = chart1.ChartAreas[0];
ca.InnerPlotPosition.X = 10;

但是请注意,这意味着:Y-Axis 将从 whole ChartArea.Width10% 开始,这通常意味着类似于 'almost 10%'整个Chart.Width。 (Legend和一些白色的space通常也会带一些space。

因此,如果您调整图表的大小,轴可能会稍微靠右一些。您可能不希望使用数字,并且可能在图表的 Resize 事件中编写额外的一行。