使用鼠标滚轮放大 Microsoft 图表控件时 X 值栏中显示的图表

问题描述

我在我的项目中使用 Microsoft Chart 控件,我想通过使用鼠标滚轮在 Chart Control 中启用缩放功能。我找到了以下解决方案:

how to enable zooming in Microsoft chart control by using Mouse wheel

private class ZoomFrame
{
    public double XStart { get; set; }
    public double XFinish { get; set; }
    public double YStart { get; set; }
    public double YFinish { get; set; }
}

private readonly Stack<ZoomFrame> _zoomFrames = new Stack<ZoomFrame>();
private void chart1_MouseWheel(object sender,MouseEventArgs e)
{
    var chart = (Chart)sender;
    var xAxis = chart.ChartAreas[0].AxisX;
    var yAxis = chart.ChartAreas[0].AxisY;

    try
    {
        if (e.Delta < 0)
        {
            if (0 < _zoomFrames.Count)
            {
                var frame = _zoomFrames.Pop();
                if (_zoomFrames.Count == 0)
                {
                    xAxis.ScaleView.Zoomreset();
                    yAxis.ScaleView.Zoomreset();
                }
                else
                {
                    xAxis.ScaleView.Zoom(frame.XStart,frame.XFinish);
                    yAxis.ScaleView.Zoom(frame.YStart,frame.YFinish);
                }
            }
        }
        else if (e.Delta > 0)
        {
            var xMin = xAxis.ScaleView.ViewMinimum;
            var xMax = xAxis.ScaleView.ViewMaximum;
            var yMin = yAxis.ScaleView.ViewMinimum;
            var yMax = yAxis.ScaleView.ViewMaximum;

            _zoomFrames.Push(new ZoomFrame { XStart = xMin,XFinish = xMax,YStart = yMin,YFinish = yMax });

            var posXStart = xAxis.PixelPositionTovalue(e.Location.X) - (xMax - xMin) / 4;
            var posXFinish = xAxis.PixelPositionTovalue(e.Location.X) + (xMax - xMin) / 4;
            var posYStart = yAxis.PixelPositionTovalue(e.Location.Y) - (yMax - yMin) / 4;
            var posYFinish = yAxis.PixelPositionTovalue(e.Location.Y) + (yMax - yMin) / 4;

            xAxis.ScaleView.Zoom(posXStart,posXFinish);
            yAxis.ScaleView.Zoom(posYStart,posYFinish);
        }
    }
    catch { }         
}

但是,在缩放时显示图表时会出现问题,图表值显示在 X 值栏中并显示标签顶部。有什么可以阻止在这标签内绘制图表的吗?

您可以在下面的链接中查看图片中出现问题的示例。

Image with issue within the chart

问候,

简·威廉

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...