chart图标的缩放,怎么设置缩放最值

piupiupupu 2015-09-11 01:29:24


可以缩放,放到只有一个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]);
}

}

}
...全文
333 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
punun 2015-09-11
  • 打赏
  • 举报
回复
沉吧。。提错地方就不会有人会吗。。 自己来拣个分。。
piupiupupu 2015-09-11
  • 打赏
  • 举报
回复
还有一个问题 这个只是实验一下 把代码移植到另一个form的TabPage2里面,发现鼠标滚轮缩放不好用了。。。。 想知道为什么和怎么改 我在designer.cs里面加了 this.chart1.MouseWheel += new System.Windows.Forms.MouseEventHandler(chart_MouseWheel); 感觉不执行。。。
jiqiang01234 2015-09-11
  • 打赏
  • 举报
回复
这里不是C#版块

69,368

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧