Beispiel #1
0
        private void DoPan(Point screenStart, Point screenEnd)
        {
            if (masterPlot != null)
            {
                double dx = IsHorizontalNavigationEnabled ?
                            masterPlot.XFromLeft(screenEnd.X) - masterPlot.XFromLeft(screenStart.X) : 0;
                double dy = IsVerticalNavigationEnabled ?
                            masterPlot.YFromTop(screenEnd.Y) - masterPlot.YFromTop(screenStart.Y) : 0;
                var rect = masterPlot.PlotRect;

                double width  = rect.Width;
                double height = rect.Height;
                if (IsDirectionInverted)
                {
                    dy = -dy;
                }
                masterPlot.SetPlotRect(new DataRect(
                                           rect.XMin - dx,
                                           rect.YMin - dy,
                                           rect.XMin - dx + width,
                                           rect.YMin - dy + height));

                masterPlot.IsAutoFitEnabled = false;
            }
        }
Beispiel #2
0
        private void MouseNavigationLayer_MouseWheel(object sender, MouseWheelEventArgs e)
        {
            Point cursorPosition = e.GetPosition(this);

            if (!CheckCursor(cursorPosition))
            {
                return;
            }

            //Zoom relative to mouse position
            double factor   = e.Delta < 0 ? 1.2 : 1 / 1.2;
            Point  mousePos = new Point(
                masterPlot.XFromLeft(cursorPosition.X),
                masterPlot.YFromTop(cursorPosition.Y));

            DoZoom(factor, mousePos);
            e.Handled = true;
        }