C# Chart 控件的一些操作
网上都没有很好的解决方案。MSDN是个好东西,我基本上都是在上面找到解答的。
// 使图表支持在X和Y轴上放大和缩小
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
// 重置图表缩放
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(0);
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset(0);
/// <summary>
/// 选择图表上数据点的值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void chart1_MouseClick(object sender, MouseEventArgs e)
{
var pos = e.Location;
var results = chart1.HitTest(pos.X, pos.Y, false,
ChartElementType.DataPoint);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.DataPoint)
{
//var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
//var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
var xVal = result.PointIndex;
var yVal = series.Points[xVal].YValues[0];
label1.Text = string.Format("{0},{1}",xVal,yVal);
}
}
}
// 使图表支持在X和Y轴上放大和缩小
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
// 重置图表缩放
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(0);
chart1.ChartAreas[0].AxisY.ScaleView.ZoomReset(0);
/// <summary>
/// 选择图表上数据点的值
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void chart1_MouseClick(object sender, MouseEventArgs e)
{
var pos = e.Location;
var results = chart1.HitTest(pos.X, pos.Y, false,
ChartElementType.DataPoint);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.DataPoint)
{
//var xVal = result.ChartArea.AxisX.PixelPositionToValue(pos.X);
//var yVal = result.ChartArea.AxisY.PixelPositionToValue(pos.Y);
var xVal = result.PointIndex;
var yVal = series.Points[xVal].YValues[0];
label1.Text = string.Format("{0},{1}",xVal,yVal);
}
}
}