LitDev.Engines.GraphEngine._MouseMoveEvent C# (CSharp) Method

_MouseMoveEvent() private method

private _MouseMoveEvent ( Object sender, System.Windows.Input.MouseEventArgs e ) : void
sender Object
e System.Windows.Input.MouseEventArgs
return void
        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);
            }
        }