可以缩放,放到只有一个bar的时候出错,怎么设置缩放的最值,语句怎么写?
找了半天没找到。。。新手
语句如下:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
}
//鼠标滚轮事件(移动/缩放)
private void chart_MouseWheel(object sender, MouseEventArgs e)
{
//按住Ctrl,缩放
if ((Control.ModifierKeys & Keys.Control) == Keys.Control)
{
if (e.Delta < 0)
chart1.ChartAreas[0].AxisX.ScaleView.Size += 4;
else
chart1.ChartAreas[0].AxisX.ScaleView.Size -= 4;
}
//不按Ctrl,滚动
else
{
if (e.Delta < 0)
chart1.ChartAreas[0].AxisX.ScaleView.Position += 4;
else
chart1.ChartAreas[0].AxisX.ScaleView.Position -= 4;
}
}
//Bar颜色
private void bar_color(int index,int y)
{
if (y <= 35)
chart1.Series["Series1"].Points[index].Color = Color.ForestGreen;
else if(y <= 43)
chart1.Series["Series1"].Points[index].Color = Color.Orange;
else
chart1.Series["Series1"].Points[index].Color = Color.DarkRed;
}
//生成随机Bar + chart选择缩放
private void button1_Click(object sender, EventArgs e)
{
//old series清除
foreach (var series in chart1.Series)
{ series.Points.Clear(); }
int y;
Random rnd = new Random();
for (int index = 0; index < 100 ; index++)
{
y = rnd.Next(10, 50);
chart1.Series["Series1"].Points.AddXY(index,y);
// 宽度
//chart1.Series["Series1"]["pointwidth"] = ;
// 颜色
bar_color(index,y);
#region.......chart缩放功能.........
// Enable range selection and zooming end user interface
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 = true;
// 设置滚动条的大小
chart1.ChartAreas[0].AxisX.ScrollBar.Size = 15;
// 设置滚动条的按钮的风格
chart1.ChartAreas[0].AxisX.ScrollBar.ButtonStyle = ScrollBarButtonStyles.All;
// 设置自动放大与缩小的最小量
chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollSize = double.NaN;
chart1.ChartAreas[0].AxisX.ScaleView.SmallScrollMinSize = 1;
#endregion
}
}
//双击单体Bar
private void chart1_MouseDoubleClick(object sender, MouseEventArgs e)
{
// Call Hit Test Method
HitTestResult result = chart1.HitTest(e.X, e.Y);
if (result.ChartElementType == ChartElementType.DataPoint)
{
DataPoint selectedDataPoint = (DataPoint)result.Object;
MessageBox.Show(" X 值:" + selectedDataPoint.XValue + '\n' + " Y 值: " + selectedDataPoint.YValues[0]);
//MessageBox.Show("X 值:" + DateTime.FromOADate(selectedDataPoint.XValue) + " Y 值: " + selectedDataPoint.YValues[0]);
}
}
}