C# MsChart 类似十字光标/交叉线 跟随鼠标移动功能 的优化

Song-csdn 2014-03-27 04:56:11
搜索了很多,自己也尝试了很多,目前还没很好的解决方法,发帖求助。

想实现类似CAD制图那种十字光标跟随的效果,其实MsChart是带这功能的

设置ChartAre属性:

 _chartArea.CursorX.IsUserEnabled = true;
_chartArea.CursorY.IsUserEnabled = true;


鼠标点击在绘图区域内的时候,就可以看到想要的效果,通过以下代码实现跟随鼠标移动
对Chart添加MouseMove事件,在响应方法内实现如下代码:

   private void Chart_MouseMove(object sender, MouseEventArgs e)
{
_currentPointX = e.X;
_currentPointY = e.Y;

//MsChart.Refresh();没啥效果

_chartArea.CursorX.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
_chartArea.CursorY.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
//Application.DoEvents(); 使用此方法当有线程操作时会引发异常
}


通过以上方式,其实已经实现了十字光标跟随鼠标移动的功能,数据量小的时候效果也不错,当数据量过大的时候,会明显的感觉到卡顿。

但是使用时发现一个特点,当开启曲线缩放的功能时,就是鼠标点击按下拖动时( _chartArea.CursorX.IsUserSelectionEnabled = isallow;),十字光标也会跟着鼠标走,而且不会卡顿。

想看看点击按下时发生了什么事情,但是源代码时没有的,只能望洋兴叹。
也尝试过自己画两条线上去,鉴于个人能力,实在是性能和效果不堪入目。
请问大家有什么好的解决方法?
...全文
3475 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 楼主 songqingwei1988 的回复:
鼠标点击在绘图区域内的时候,就可以看到想要的效果,通过以下代码实现跟随鼠标移动 对Chart添加MouseMove事件,在响应方法内实现如下代码:
   private void Chart_MouseMove(object sender, MouseEventArgs e)
       {  
           _currentPointX = e.X;
           _currentPointY = e.Y;
 
           //MsChart.Refresh();没啥效果
            
           _chartArea.CursorX.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
           _chartArea.CursorY.SetCursorPixelPosition(new PointF(_currentPointX, _currentPointY), true);
           //Application.DoEvents(); 使用此方法当有线程操作时会引发异常
       }
通过以上方式,其实已经实现了十字光标跟随鼠标移动的功能,数据量小的时候效果也不错,当数据量过大的时候,会明显的感觉到卡顿。
你这个代码比实际的代码慢了10000倍。因为实际的代码只需要设置一次就够了,而你的代码则是每一次鼠标移动时都重复设置一次。 你应该先判断一下,看看有没有必要 SetCursorPixelPosition。
cqtrq 2015-10-25
  • 打赏
  • 举报
回复
楼主,问题解决没有啊,我也想知道怎么设置类似CAD、股票软件里面的全屏十字光标。
dengtuoyu 2014-03-30
  • 打赏
  • 举报
回复
找个皮肤的源代码参考一下吧!
Song-csdn 2014-03-30
  • 打赏
  • 举报
回复
看着帖子默默忧伤啊,明天试试自己画一条上去
Song-csdn 2014-03-30
  • 打赏
  • 举报
回复
自己画图第一步,确定绘图区域坐标 http://www.cplotts.com/2009/10/09/wpf-silverlight-charting-a-logarithmic-axis/
Song-csdn 2014-03-28
  • 打赏
  • 举报
回复
引用 1 楼 u013347644 的回复:
这个没有研究过,抱歉哦~
thank you all the same
Song-csdn 2014-03-28
  • 打赏
  • 举报
回复
thank you all the same
u013347644 2014-03-27
  • 打赏
  • 举报
回复
这个没有研究过,抱歉哦~

8,833

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 组件/控件开发
社区管理员
  • 组件/控件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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