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.Width
的 10%
开始,这通常意味着类似于 'almost 10%'
整个Chart.Width
。 (Legend
和一些白色的space通常也会带一些space。
因此,如果您调整图表的大小,轴可能会稍微靠右一些。您可能不希望使用数字,并且可能在图表的 Resize
事件中编写额外的一行。
现在有人知道如何防止 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.Width
的 10%
开始,这通常意味着类似于 'almost 10%'
整个Chart.Width
。 (Legend
和一些白色的space通常也会带一些space。
因此,如果您调整图表的大小,轴可能会稍微靠右一些。您可能不希望使用数字,并且可能在图表的 Resize
事件中编写额外的一行。