Winform中实现ZedGraph曲线图缩放后复原功能
场景
Winforn中设置ZedGraph曲线图的属性、坐标轴属性、刻度属性:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100112573
在上面实现曲线缩放效果之后,实现一键复原的效果。
效果
实现
拖拽按钮,双击进入其点击事件
private void button7_Click(object sender, EventArgs e){//一键复原缩放this.zedGraphControl1.ZoomOutAll(myPane);}
完整示例代码
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using ZedGraph;namespace ZedGraphTest
{public partial class Form1 : Form{GraphPane myPane = new GraphPane();public Form1(){InitializeComponent();//Form1初始化后创建设置控件的方法并将当前ZedGraph控件传递createPane(zedGraphControl1);}//需要引入命名空间--using ZedGraph;public void createPane(ZedGraphControl zgc){myPane = zgc.GraphPane;//设置图表标题 和 x y 轴标题myPane.Title.Text = "霸道测试标题";myPane.XAxis.Title.Text = "X轴标题";myPane.YAxis.Title.Text = "Y轴标题";//更改标题的字体FontSpec myFont = new FontSpec("Arial",16,Color.Black,false,false,false);myPane.XAxis.Title.FontSpec = myFont;myPane.YAxis.Title.FontSpec = myFont;// 造一些数据,PointPairList里有数据对x,y的数组Random y = new Random();PointPairList list1 = new PointPairList();for (int i = 0; i < 36; i++){double x = i;double y1 = y.NextDouble() * 1000;list1.Add(x, y1); //添加一组数据}// 用list1生产一条曲线,标注是“曲线1”//SymbolType,枚举代表曲线的样式//Square = 0,//Diamond = 1,//Triangle = 2,//Circle = 3,//XCross = 4,//Plus = 5,//Star = 6,//TriangleDown = 7,//HDash = 8,//VDash = 9,//UserDefined = 10,//Default = 11,//None = 12,LineItem myCurve = myPane.AddCurve("曲线1", list1, Color.Red, SymbolType.None);//填充图表颜色myPane.Fill = new Fill(Color.White, Color.LightGray, 45.0f);//以上生成的图标X轴为数字,下面将转换为日期的文本string[] labels = new string[36];for (int i = 0; i < 36; i++){labels[i] = System.DateTime.Now.AddDays(i).ToShortDateString();}#region 坐标轴属性设置//X轴类型myPane.XAxis.Type = AxisType.Text; //显示小刻度 是false则看不到效果myPane.XAxis.MinorGrid.IsVisible = true;//线的颜色myPane.XAxis.Color = Color.Black;//点线中点与点之间的间隔myPane.XAxis.MinorGrid.DashOff = 1f;//点线中点的长度myPane.XAxis.MinorGrid.DashOn = 1f;//画笔宽度myPane.XAxis.MinorGrid.PenWidth = 1f;#endregion#region 坐标轴上刻度线设置//X轴文本取值myPane.XAxis.Scale.TextLabels = labels;//第一个刻度从哪里开始myPane.XAxis.Scale.BaseTic = 1;//刻度值的字体属性myPane.XAxis.Scale.FontSpec = myFont;#endregion//画到zedGraphControl1控件中,此句必加zgc.AxisChange();//在数据变化时绘图//更新图表zedGraphControl1.Invalidate();//重绘控件Refresh();#region 属性设置//是否允许横向缩放this.zedGraphControl1.IsEnableHZoom = true;//是否允许纵向缩放this.zedGraphControl1.IsEnableVZoom = true;//是否允许缩放this.zedGraphControl1.IsEnableZoom = true;//是否显示右键菜单this.zedGraphControl1.IsShowContextMenu = true;//复制图像时是否显示提示信息this.zedGraphControl1.IsShowCopyMessage = true;//鼠标在图表上移动时是否显示鼠标所在点对应的坐标 默认为falsethis.zedGraphControl1.IsShowCursorValues = true;//是否显示横向滚动条this.zedGraphControl1.IsShowHScrollBar = true;//是否显示纵向滚动条this.zedGraphControl1.IsShowVScrollBar = true;//鼠标经过图表上的点时是否显示该点所对应的值 默认为falsethis.zedGraphControl1.IsShowPointValues = true;//使用滚轮时以鼠标所在点为中心进行缩放还是以图形中心进行缩放//this.zedGraphControl1.IsZoomOnMouseCenter = true;#endregionthis.zedGraphControl1.ContextMenuBuilder += MyContextMenuBuilder;}private void zedGraphControl1_Load(object sender, EventArgs e){}/// <summary>/// 打印预览/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button1_Click(object sender, EventArgs e){this.zedGraphControl1.DoPrintPreview();}//复制到剪切板private void button2_Click(object sender, EventArgs e){//ture代表复制成功提示this.zedGraphControl1.Copy(true);}/// <summary>/// 获取图片并保存/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button3_Click(object sender, EventArgs e){//获取图像Image image = this.zedGraphControl1.GetImage();//保存照片吗,指定保存路径image.Save(@"C:\Users\HAOHAO\Desktop\1.png");//弹窗提示MessageBox.Show("保存成功");}/// <summary>/// 显示另存为对话框/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button4_Click(object sender, EventArgs e){this.zedGraphControl1.SaveAs();}/// <summary>/// 另存为BMP文件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button5_Click(object sender, EventArgs e){this.zedGraphControl1.SaveAsBitmap();}/// <summary>/// 另存为EMF文件/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button6_Click(object sender, EventArgs e){this.zedGraphControl1.SaveAsEmf();}/// <summary>/// 一键复原/// </summary>/// <param name="sender"></param>/// <param name="e"></param>private void button7_Click(object sender, EventArgs e){//一键复原缩放this.zedGraphControl1.ZoomOutAll(myPane);}//右击菜单变中文private static void MyContextMenuBuilder(ZedGraphControl control, ContextMenuStrip menuStrip,Point mousePt, ZedGraphControl.ContextMenuObjectState objState){foreach (ToolStripMenuItem item in menuStrip.Items){switch (item.Name){case "copied_to_clip":item.Text = @"复制到剪贴板";break;case "copy":item.Text = @"复制";break;case "page_setup":item.Text = @"页面设置...";break;case "print":item.Text = @"打印...";break;case "save_as":item.Text = @"另存图表...";break;case "set_default":item.Text = @"恢复默认大小";break;case "show_val":item.Text = @"显示节点数值";break;case "title_def":item.Text = @"标题";break;case "undo_all":item.Text = @"还原缩放/移动";break;case "unpan":item.Text = @"还原移动";break;case "unzoom":item.Text = @"还原缩放";break;case "x_title_def":item.Text = @"X 轴";break;case "y_title_def":item.Text = @"Y 轴";break;}}}}
}
Winform中实现ZedGraph曲线图缩放后复原功能相关推荐
- Winform中实现ZedGraph滚轮缩放后自动重新加载数据
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中设置ZedGraph曲线图的字体样式是避免出现边框
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中设置ZedGraph曲线图的水平与竖直参考线
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中实现ZedGraph曲线图的图像复制到剪切板、打印预览、获取图片并保存、另存为的功能
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- 史上最全Winform中使用ZedGraph教程与资源汇总整理(附资源下载)
场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...
- Winform中自定义ZedGraph右键复制成功后的提示
场景 Winform中实现ZedGraph中曲线右键显示为中文: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/100115292 ...
- Winform中设置ZedGraph鼠标滚轮缩放的灵敏度以及设置滚轮缩放的方式(鼠标焦点为中心还是图形中心点)
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
- Winform中设置ZedGraph的字体和间距不随图形的缩放而缩放
场景 C#窗体应用中使用ZedGraph曲线插件绘制图表: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/99716066 Win ...
- Winform中使用ZedGraph实现曲线图中字体去掉边框
场景 Winforn中设置ZedGraph曲线图的属性.坐标轴属性.刻度属性: https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/10 ...
最新文章
- 玩转python轻松过二级_关于通话的阿里云论坛用户知识和技术交流
- 残缺的完美 送给飘
- oracle点勾算提交吗,oracle表结构和数据导出时的一些勾选项说明
- 转换到 COFF 期间失败: 文件无效或损坏
- [UVALive 3177] Beijing Guards
- pyspark报错java.lang.ClassNotFoundException: com.mysql.cj.jdbc.Driver
- 最近写SQL老出错!
- ORACLE DATAGURARD配置手记
- 10、并发容器,ConcurrentHashMap
- 互联网开源贡献是什么意思_为什么我们为开源软件做出贡献?
- [Linux] C 语言遍历文件夹
- QT不同线程间signal-slot机制的值传递
- 重置PL/SQL Developer工具栏布局
- 9ztu.com 就找图商品图片商品条码搜索引擎
- 在Nutz中给Druid配置数据库加密
- 操作系统部分知识点(持续更新)
- Tomcat 下载安装教程
- 连接打印机错误0x000000bcb解决方法
- 如何把一张图片设置成一个应用程序的图标?
- 【3y原创】什么是保险
热门文章
- opencart mail.php,如何修改OpenCart系统发信邮箱模板
- Java必备主流技术流程图
- freemarker模板最小案例实现
- 分布式CAP详解,为什么三个指标不可能同时做到。
- 在Qt在GUI程序里显示控制台界面
- php数组去重的函数,php数组去重的函数代码
- maven 不编译jasper文件_第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp...
- windows nginx c++读取请求数据_震撼!全网第一张源码分析全景图揭秘Nginx
- php怎么弄自动填充,ThinkPHP 自动填充(自动完成)详解及实例
- Linux安装指定版本Angular Cli