private void _MouseMoveEvent(Object sender, MouseEventArgs e)
{
try
{
Canvas _plotarea = (Canvas)sender;
Canvas _graph = (Canvas)_plotarea.Parent;
plotData _plotData = getPlotData((string)_graph.Tag);
_plotarea.Cursor = Cursors.Cross;
if (null != _plotData.scaleArea)
{
posUp = e.GetPosition(_plotarea);
_plotData.scaleArea.Width = System.Math.Abs(posUp.X - posDown.X);
_plotData.scaleArea.Height = System.Math.Abs(posUp.Y - posDown.Y);
Canvas.SetLeft(_plotData.scaleArea, System.Math.Min(posUp.X, posDown.X));
Canvas.SetTop(_plotData.scaleArea, System.Math.Min(posUp.Y, posDown.Y));
}
if (_plotData.displayHoverVal)
{
Point pos = e.GetPosition(_plotarea);
double X = sigfig(_plotData.minX - _plotData.shiftX + (_plotData.maxX- _plotData.minX) * pos.X / _plotarea.ActualWidth, 5);
double Y = sigfig(_plotData.maxY - _plotData.shiftY + (_plotData.minY - _plotData.maxY) * pos.Y / _plotarea.ActualHeight, 5);
_plotData.hoverVal.Text = "(" + X.ToString() + "," + Y.ToString() + ")";
Canvas.SetLeft(_plotData.hoverVal, pos.X + 6);
Canvas.SetTop(_plotData.hoverVal, pos.Y - 20);
_plotData.hoverValBG.Text = _plotData.hoverVal.Text;
Canvas.SetLeft(_plotData.hoverValBG, pos.X + 6);
Canvas.SetTop(_plotData.hoverValBG, pos.Y - 20);
}
if (mouseScrollX)
{
_plotData.shiftX += (e.GetPosition(_plotarea).X - posScrollX.X) / _plotarea.ActualWidth * (_plotData.maxX - _plotData.minX);
posScrollX = e.GetPosition(_plotarea);
if (doEvents) _plotarea.Cursor = Cursors.Hand;
plotSeries(_graph, _plotData, eZoom.FALSE, eRescale.FALSE);
}
if (mouseScrollY)
{
_plotData.shiftY += (e.GetPosition(_plotarea).Y - posScrollY.Y) / _plotarea.ActualHeight * (_plotData.minY - _plotData.maxY);
posScrollY = e.GetPosition(_plotarea);
if (doEvents) _plotarea.Cursor = Cursors.Hand;
plotSeries(_graph, _plotData, eZoom.FALSE, eRescale.FALSE);
}
}
catch (Exception ex)
{
Utilities.OnError(Utilities.GetCurrentMethod(), ex);
}
}