效果:左键划选放大区域,右键恢复
/// <summary>
/// 初始化,传入要进行初始化的chart
/// </summary>
/// <param name="chart1"></param>
public static void InitChart (System.Windows.Forms.DataVisualization.Charting.Chart chart1)
{
//开启缩放功能
chart1.ChartAreas[0].CursorX.Interval = 0;
chart1.ChartAreas[0].CursorX.IsUserEnabled = true;
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.MouseClick += new System.Windows.Forms.MouseEventHandler(chart_MouseClick);
}
//右键恢复缩放
static void chart_MouseClick(object sender, MouseEventArgs e)
{
Chart chart1 = sender as Chart;
//右键恢复事件
if (e.Button == MouseButtons.Right)
{
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(0);
}
}
放大:
仅针对x轴(y轴同理)
chartArea1.CursorX.IsUserEnabled = true;
chartArea1.CursorX.IsUserSelectionEnabled = true;
缩小:
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset();
ZoomReset(0); —— 撤销所有放大动作
ZoomReset(1); —— 撤销上一次放大动作
设置滚动条宽度
chart1.ChartAreas[0].AxisX.ScrollBar.Size = 5;
以上所有方法也可以在chart属性里直接进行设置
获取选区坐标
Console.WriteLine(chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum);//当前显示范围最小坐标
Console.WriteLine(chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum);//当前显示范围最大坐标
参考文章: