C# 【已上传代码】解决chart控件缩小视图后不能回到当前视图位置问题
C#中的chart控件,是非常适合用来绘图的。当想查看数据的细节时,可以设置chart控件的放大缩小功能,一般该功能是和滚动条一块使用的。
比如我现在想查看圆圈处的数据的细节,那么添加以下语句就可以执行放大功能以查看数据的细节
chart1.ChartAreas[0].CursorX.IsUserSelectionEnabled = true;
chart1.ChartAreas[0].CursorY.IsUserSelectionEnabled = true;
当看完细节后又想看全局数据时,那么这时我们就需要实行缩小功能,可以使用chart中的ZoomReset(int numberOfViews)函数执行缩小功能,其中的参数是要重置的缩放操作数。一般我们都是一步一步放大缩小,那么该函数的使用就是 ZoomReset(1),表示重置1次缩放操作。
//该语句表示重置X轴的一次缩放操作
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(1);
上面两张图片就展示了放大和缩小后的效果。
但是这里有个问题,那就是当我放大查看数据后,并且用滚动条拖动数据到其他位置,再重置缩放操作时,视图位置会回到前一步执行放大操作的视图位置。
当前在00:08:00执行了放大视图操作
在该视图下,使用滚动条拖动数据至02:29:00
执行重置缩放操作后,视图位置又回到了00:08:00处,也就是执行放大操作时的视图位置。
这样对我们的使用就非常的不方便,所以如何解决这个问题呢?如何在执行重置缩放操作后,视图位置仍能定位到我们当前查看的视图位置呢?其实解决方法也很简单,那就是控制chart控件视图的位置,即控制
chart1.ChartAreas[0].AxisX.ScaleView.Position
的值。
那么要如何控制呢,只需要用一个定位点来确定便解决了。
现在我用当前X轴视图的中间点来当做定位点(02:28:00),为了执行重置缩放操作后,该定位点仍旧是重置缩放操作后的中间点(通俗讲就是视图位置还是在这个定位点处),那么添加以下代码便可以实现了
//用变量x记录下定位点的x值,也就是当前X轴视图的中间位置
double x = (chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum + chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum) / 2;//执行一次重置缩放操作
chart1.ChartAreas[0].AxisX.ScaleView.ZoomReset(1);//将X轴视图位置重新定位。用x的值减去新的X轴视图大小的一半,即为新的X轴视图定位
chart1.ChartAreas[0].AxisX.ScaleView.Position = x - (chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum - chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum) / 2;//这里要注意,要控制视图定位在X轴的最大最小值之间,不然视图位置就跑到数据外面去了if (chart1.ChartAreas[0].AxisX.ScaleView.Position < chart1.ChartAreas[0].AxisX.Minimum)chart1.ChartAreas[0].AxisX.ScaleView.Position = chart1.ChartAreas[0].AxisX.Minimum;if (chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum > chart1.ChartAreas[0].AxisX.Maximum)chart1.ChartAreas[0].AxisX.ScaleView.Position = chart1.ChartAreas[0].AxisX.Maximum - (chart1.ChartAreas[0].AxisX.ScaleView.ViewMaximum chart1.ChartAreas[0].AxisX.ScaleView.ViewMinimum);
执行重置缩放操作,可以看到,X轴的视图位置仍是以(02:28:00)为中心,并没有回到之前的(00:08:00)附近,问题完美解决。
源代码下载
C# 【已上传代码】解决chart控件缩小视图后不能回到当前视图位置问题相关推荐
- asp.net实现ftp上传代码(解决大文件上传问题)
asp.net实现ftp上传代码(解决大文件上传问题) 参考文章: (1)asp.net实现ftp上传代码(解决大文件上传问题) (2)https://www.cnblogs.com/LYunF/ar ...
- (转)asp.net2.0 上传大容量文件第三方控件radupload
1.web.config 中需要加入: <httpHandlers> <add verb="*" path="Telerik.RadUplo ...
- html元素中,可以上传文件的唯一控件就是input type=file啦
值得注意的是:当一个表单里面包含这个上传元素的时候,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才会认识并正确执行.但是还有一点,浏览器 ...
- element ui实现自定义上传文件-以及解决已上传文件列表消失问题
自定义上传按钮,非自动上传,效果图 action - 就是上传的接口地址 accept - 是限制上传文件格式,设置后只能上传该格式文件, 选取-选取按钮只是选择了文件 ,但是并没有上传 若要点击上传 ...
- iOS开发:GitHub上传代码错误提示fatal: Authentication failed for 'https://gitee.com/XXX/XXX.git/‘的解决方法
上传代码到Git上面,有时候会遇到各种情况,有些时候是因为合并代码冲突,有些时候是因为修改了Git的登录密码需要重新认证.那么这里就来讲解错误提示fatal: Authentication faile ...
- GIT上传代码的时候出现(Please tell me who you are.)信息应该咋么解决?
GIT上传代码的时候出现(Please tell me who you are.)信息应该咋么解决? 文章目录 GIT上传代码的时候出现(Please tell me who you are.)信息应 ...
- idea上传代码到gitee出现的问题及解决办法
第一次上传代码到gitee,如果按照网上的办法直接上传,会出现很多问题.本人虽然以前使用过gitee上传代码,但是那是在别人的帮助下进行的,而自己首次独立创建仓库,上传代码确出现了很多问题,现在把遇到 ...
- eclipse上传代码到github,漏掉的代码怎么上传解决方法
eclipse上传代码到github,有些更新的代码commit的时候没有上传到github,这个时候只有手动上传,漏掉的代码. 没有上传的代码,在项目中会出现问号标识此代码没有上传到github.而 ...
- GIT上传代码Enumerating objects:类型报错解决,实测可用
最近使用在idea中Git上传代码经常反复出现Enumerating objects: 29, done. Delta compression using up to 8 threads Total开 ...
最新文章
- web前端开发最佳实践_学习前端Web开发的最佳方法
- 日志分析,seci-log1.03增加了web日志分析,新增了多种告警
- python怎么让摄像头图像暂停然后在启动_双目摄像头测量距离
- .h头文件 .lib动态链接库文件 .dll 动态链接库
- 网站关键词优化的五大侧重点!
- 日常生活中怎样利用计算机的,数据存储与管理在日常生活中的三种方式
- 为CodeLove编写插件——常用软件扫描(SoftwareToScan)
- 源路由 小实验 小发现
- POJ 1936 字符匹配(水题)
- python输入三次密码程序_请教各位大神,为啥以下代码输入修改密码后连输错三次还是能输入...
- 【Java】Java_03第一个Java程序
- 即时语音提示软件php,InsTalk即时语音提示校对软件(语音识别和语音合成软件)
- 抖音下载android,抖音完整版
- k8s-liveness和readness详解
- BUUCTF_Crytpo_robomunication
- ZK指纹考勤机Java接口
- ONF(Open Networking Foundation)
- Byval 和 Byref的区别
- google的黑镜子 -- 思考技术元素对生活的影响
- 【日常】某B视频网站模拟登录尝试
热门文章
- 如何采集电信的电视信号---搭建酒店OTT-TV的重要环节
- 体验 服务器正在维护升级中 给大,4月3日体验服停机更新公告
- 我来图书馆小程序一键签到和一键抢位置工具
- hbuilderx版本怎么更新到新版本_HbuilderX2.6.3.20200305版本编译后的APP自动更新异常...
- 防伪标签制作制版工艺介绍_防伪常识
- 企业招标采购(系统)降本增效的20个措施
- 计算机学院与软件学院区别,计算机学院和软件学院的专业上有什么区别?
- 基础算法-Xgboost
- 合理利用自己的业余时间
- 联想潮7000怎么安装Java_联想小新潮7000笔记本装win10系统及bios设置教程