gpt4 book ai didi

c# - 滚动时图表宽度移动

转载 作者:太空宇宙 更新时间:2023-11-03 19:07:33 25 4
gpt4 key购买 nike

当我按 axisX 滚动时,我的图表正在移动。我认为这是因为我使用自定义标签。如何固定 axisX 宽度?

            chart1.ChartAreas[0].AxisX.IsMarksNextToAxis = false;

chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].AxisX.ScaleView.Zoomable = true;
chart1.ChartAreas[0].AxisX.ScrollBar.IsPositionedInside = false;
chart1.ChartAreas[0].AxisX.ScaleView.Zoom(1, 250);

chart1.ChartAreas[0].AxisX.LabelAutoFitStyle = LabelAutoFitStyles.None;
chart1.ChartAreas[0].AxisX.IsLabelAutoFit = true;

chart1.ChartAreas[0].AxisY.LabelAutoFitStyle = LabelAutoFitStyles.None;
chart1.ChartAreas[0].AxisY.IsLabelAutoFit = false;

//custom labels
//...
//...
if (i % 13 == 0)
{
CustomLabel CL = new CustomLabel();
CL.FromPosition = i - 13;
CL.ToPosition = i + 13;
CL.Text = L[i].Item1.ToString("d MMM\r\nHH:mm");//+"\n"+L[i].Item1.ToString("HH:mm");

chart1.ChartAreas[0].AxisX.CustomLabels.Add(CL);
}
//...
//..

最佳答案

大多数(如果不是全部)图表元素都具有某种大小属性。在您的情况下,您可以使用 ChartAreaInnerPlotPosition 属性。参见 MSDN了解更多详情,但它可能看起来像:

chart1.ChartAreas[0].InnerPlotPosition.Width = 75; // this will make the plotting area width 75% of the whole chart area width
chart1.ChartAreas[0].InnerPlotPosition.Height = 60; // this makes the plotting area height 60% of the chart area height

或者你可以这样做:

chart1.ChartAreas[0].InnerPlotPosition = new ElementPosition(5, 10, 75, 60);

这将同时设置绘图区域的位置和大小。

关于此属性需要注意的一点是,大小不是实际像素大小,而是 ChartArea 大小的百分比。要使它们正确需要大量的摆弄和反复试验,并且在某些情况下您可能需要处理 FormResize 事件以保留图表调整窗口大小时看起来不错。

关于c# - 滚动时图表宽度移动,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24717469/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com