ChartPanel问题
您好!请问在Chart里面添加可拖动的线,如何让鼠标只有在线的附近点击时,才能LeftMouseButtonDrag?
现在默认的是只有在右侧,并且右侧离线很远时,线也可以动。 回复 1楼安心海叶的帖子
谢谢您的反馈。
您可以在鼠标相关事情,比如MouseLeftButtonDown事件里,拿到当前的点,然后在MouseMove里判断和可移动的线之间的距离,选择您认为合适移动的距离。
基本思路
1.调用事件。
void ds_PlotElementLoaded(object sender, EventArgs e)
{
var pe = (PlotElement)sender;
pe.MouseLeftButtonDown += new MouseButtonEventHandler(pe_MouseLeftButtonDown);
pe.MouseLeftButtonUp += new MouseButtonEventHandler(pe_MouseLeftButtonUp);
}
2.鼠标左键拿到PlotElement
PlotElement currentPE;
void pe_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
//Capture plot element clicked on
currentPE = (PlotElement)sender;
}
void pe_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
//Clear selected plot element
currentPE = null;
}
3.移动的时候判断:
void c1Chart1_MouseMove(object sender, MouseEventArgs e)
{
//判断满足您的条件的时候拖拽
}
回复 2楼Alice的帖子
不太理解您的含义,ds_PlotElementLoaded是? 回复 2楼Alice的帖子
现在想要封装一个类,工程所有ChartPanelObject都具有这些特征 回复 4楼安心海叶的帖子
那是DataSeries下的事件PlotElementLoaded。
我的意思是,2楼的代码想要说明您可以自己去判断拖拽的合适位置以及时机。
鼠标的操作需要在鼠标相关事件里完成,ChartPanelObject只是一个容器,如果您需要自定义的话,还是需要在鼠标相关的事件里写代码去完成。 控件默认添加的线,如果Action为LeftMouseButtonDrag,只能向线的右侧拖拽,而不能向线的左侧拖拽?
我们只有在Chart中添加线,请问如何在鼠标事件里完成?
我们要实现的功能是:对于添加的线,可以在点击线时,实现左右拖拽功能。
以下是一个Demo,请问如何实现?
回复 6楼安心海叶的帖子
请将您的demo发过来,我帮您看看。 回复 7楼Alice的帖子
请问demo收到了吗? 回复 8楼安心海叶的帖子
抱歉,收到了,测试后给您反馈。 回复 9楼Alice的帖子
好的,谢谢~
页:
[1]
2