Пример #1
0
 /// <summary>
 /// Occurs when an input device begins a manipulation on the plot.
 /// </summary>
 /// <param name="e">
 /// The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.
 /// </param>
 public override void Started(OxyMouseEventArgs e)
 {
     base.Started(e);
     currentSeries = PlotView?.ActualModel?.Series
                     .FirstOrDefault(s => s.IsVisible) as DataPointSeries;
     Delta(e);
 }
Пример #2
0
        private void Model_MouseMove(object sender, OxyMouseEventArgs e)
        {
            X = (int)(OxyPlot.Axes.Axis.InverseTransform(e.Position, Model.Axes[0], Model.Axes[1]).X);
            if (isSelected)
            {
                if (RectangleUI == null)
                {
                    startX            = X;
                    RectangleUI       = new RectangleBarItem(startX, Int16.MinValue, X, Int16.MaxValue);
                    RectangleUI.Color = OxyColor.FromArgb(100, 0, 0, 250);
                    Bar.Items.Add(RectangleUI);
                }
                else
                {
                    RectangleUI.X1 = X;
                }

                Model.InvalidatePlot(true);
            }

            if (isPanBar && RectangleUI != null)
            {
                int offset = X - LastX;
                RectangleUI.X0 += offset;
                RectangleUI.X1 += offset;
                //Process2((int)RectangleUI.X0, (int)RectangleUI.X1);
                ProcessFFT();

                LastX = X;
                Model.InvalidatePlot(true);
            }
        }
Пример #3
0
        /// <summary>
        /// Occurs when an input device begins a manipulation on the plot.
        /// </summary>
        /// <param name="e">The <see cref="OxyInputEventArgs" /> instance containing the event data.</param>
        public override void Started(OxyMouseEventArgs e)
        {
            base.Started(e);

            var current = this.InverseTransform(e.Position.X, e.Position.Y);

            double scale = this.Step;
            if (this.FineControl)
            {
                scale *= 3;
            }

            scale = 1 + scale;

            // make sure the zoom factor is not negative
            if (scale < 0.1)
            {
                scale = 0.1;
            }

            if (this.XAxis != null)
            {
                this.XAxis.ZoomAt(scale, current.X);
            }

            if (this.YAxis != null)
            {
                this.YAxis.ZoomAt(scale, current.Y);
            }

            this.PlotView.InvalidatePlot(false);
        }
Пример #4
0
        public override void Started(OxyMouseEventArgs e)
        {
            base.Started(e);
            this.PreviousPosition = e.Position;

            this.IsPanEnabled = (this.XAxis != null && this.XAxis.IsPanEnabled) ||
                                (this.YAxis != null && this.YAxis.IsPanEnabled);

            if (this.IsPanEnabled)
            {
                if (this.XAxis != null && this.YAxis != null)
                {
                    this.View.SetCursorType(CursorType.Pan);
                }
                else if (this.XAxis == null && this.YAxis != null)
                {
                    this.View.SetCursorType(CursorType.ZoomVertical);
                }
                else if (this.XAxis != null && this.YAxis == null)
                {
                    this.View.SetCursorType(CursorType.ZoomHorizontal);
                }
                e.Handled = true;
            }
        }
Пример #5
0
        private int EnergyScalePlot_MouseMove_Base(PlotModel energyscale_plot, OxyMouseEventArgs e)
        {
            Selected_Point.Size = 2;

            int i_s = (int)energyscale_plot.Axes[0].InverseTransform(e.Position.X);

            if (i_s > (State.Num_ScaleBins - 1))
            {
                i_s = (State.Num_ScaleBins - 1);
            }
            else if (i_s < 0)
            {
                i_s = 0;
            }

            Selected_Point = Selected_Series.Points[i_s];

            Selected_Point.Size = 4;
            Selected_Plot.InvalidatePlot(true);

            label_X.Text = "X: " + i_s;
            label_Y.Text = ", Y: " + Selected_Point.Y;

            return(i_s);
        }
Пример #6
0
        public void PlotMouseMove(LineSeries lb, MapStatistics ms, OxyMouseEventArgs e)
        {
            if (lb.Points.Count != 0)
            {
                ms._endPoint1 = lb.InverseTransform(e.Position);
                if (ms._startPoint1.X != 0 || ms._startPoint1.Y != 0)
                {
                    ms._pm.Annotations.Clear();

                    var rectangle = new PolygonAnnotation();
                    rectangle.Layer           = AnnotationLayer.BelowAxes;
                    rectangle.StrokeThickness = 0.5;
                    rectangle.Stroke          = OxyColors.Red;
                    rectangle.Fill            = OxyColors.Transparent;
                    rectangle.LineStyle       = OxyPlot.LineStyle.Dot;

                    rectangle.Points.Add(new DataPoint(ms._startPoint1.X, ms._startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._endPoint1.X, ms._startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._endPoint1.X, ms._endPoint1.Y));
                    rectangle.Points.Add(new DataPoint(ms._startPoint1.X, ms._endPoint1.Y));

                    ms._pm.Annotations.Add(rectangle as Annotation);
                    ms._pm.InvalidatePlot(true);
                }
            }
        }
Пример #7
0
 private void Model_MouseUp(object sender, OxyMouseEventArgs e)
 {
     //if (e == OxyMouseButton.Left)
     {
         m_movingMouse = false;
     }
 }
        private void DrawText_OnMouseUp(object sender, OxyMouseEventArgs args)
        {
            if (_tempAnnot == null)
                return;

            var annot = _tempAnnot as TextAnnotation;
            if (annot != null)
            {
                annot.Background = OxyColors.Undefined;

                if (string.IsNullOrEmpty(uiSetTextTextBox.Text))
                {
                    using (var d = new InputTextDialog())
                    {
                        d.DisplayText = uiSetTextTextBox.Text;

                        if (d.ShowDialog() == DialogResult.OK)
                            annot.Text = d.DisplayText;
                        else
                            ChartModel.Annotations.Remove(annot);
                    }
                }
                else
                    annot.Text = uiSetTextTextBox.Text;
            }

            _tempAnnot = null;
            ChartModel.InvalidatePlot(false);
            args.Handled = true;
        }
Пример #9
0
        private void Plot_model_scroll_chart_MouseUp(object sender, OxyMouseEventArgs e)
        {
            scroll_mouse_down_value_X       = 0;
            scroll_chart_left_mouse_is_down = false;

            e.Handled = true;
        }
Пример #10
0
        private void PlotMouseMove(object sender, OxyMouseEventArgs e)
        {
            //if (_lb.Points.Count != 0)
            //{
            //    _ms._endPoint1 = _lb.InverseTransform(e.Position);
            //    if (_ms._startPoint1.X != 0 || _ms._startPoint1.Y != 0)
            //    {
            //        _ms._pm.Annotations.Clear();

            //        var rectangle = new PolygonAnnotation();
            //        rectangle.Layer = AnnotationLayer.BelowAxes;
            //        rectangle.StrokeThickness = 0.5;
            //        rectangle.Stroke = OxyColors.Red;
            //        rectangle.Fill = OxyColors.Transparent;
            //        rectangle.LineStyle = OxyPlot.LineStyle.Dot;

            //        rectangle.Points.Add(new DataPoint(_ms._startPoint1.X, _ms._startPoint1.Y));
            //        rectangle.Points.Add(new DataPoint(_ms._endPoint1.X, _ms._startPoint1.Y));
            //        rectangle.Points.Add(new DataPoint(_ms._endPoint1.X, _ms._endPoint1.Y));
            //        rectangle.Points.Add(new DataPoint(_ms._startPoint1.X, _ms._endPoint1.Y));

            //        _ms._pm.Annotations.Add(rectangle as Annotation);
            //        _ms._pm.InvalidatePlot(true);
            //    }
            //}
            _ms.PlotMouseMove(_lb, _ms, e);
        }
Пример #11
0
        private int EnergyScalePlot_MouseDown_Base(PlotModel energyscale_plot, OxyMouseEventArgs e)
        {
            int    i_s = (int)energyscale_plot.Axes[0].InverseTransform(e.Position.X);
            double y   = energyscale_plot.Axes[1].InverseTransform(e.Position.Y);

            int    selected_index = 0;
            double closest_dist   = double.PositiveInfinity;

            for (int i_p = 0; i_p < State.Num_Points; i_p++)
            {
                double dist = Math.Abs((energyscale_plot.Series[i_p] as OxyPlot.Series.ScatterSeries).Points[i_s].Y - y);
                if (dist < closest_dist)
                {
                    closest_dist   = dist;
                    selected_index = i_p;
                }
            }

            if (Selected_Point != null)
            {
                Selected_Point.Size = 2;
                Selected_Plot.InvalidatePlot(true);
            }

            Selected_Plot   = energyscale_plot;
            Selected_Series = energyscale_plot.Series[selected_index] as OxyPlot.Series.ScatterSeries;
            Selected_Point  = Selected_Series.Points[i_s];
            Selected_Index  = selected_index;

            Selected_Point.Size = 4;
            label_X.Text        = "X: " + i_s;
            label_Y.Text        = ", Y: " + Selected_Point.Y;

            return(i_s);
        }
Пример #12
0
        private void ActualModel_MouseMove(object sender, OxyMouseEventArgs e)
        {
            if (mousedown)
            {
                PlotModel plot = PolynomialDiagramModel;
                ElementCollection <OxyPlot.Axes.Axis> axisList = plot.Axes;
                OxyPlot.Axes.Axis xAxis = null, yAxis = null;

                foreach (OxyPlot.Axes.Axis ax in axisList)
                {
                    if (ax.Position == OxyPlot.Axes.AxisPosition.Bottom)
                    {
                        xAxis = ax;
                    }
                    else if (ax.Position == OxyPlot.Axes.AxisPosition.Left)
                    {
                        yAxis = ax;
                    }
                }

                DataPoint p = OxyPlot.Axes.Axis.InverseTransform(e.Position, xAxis, yAxis);
                if (p.X > PlotXRange)
                {
                    PlotXRange = (int)p.X;
                    UpdatePolynomDiagram();
                }
                else if (p.X < -PlotXRange)
                {
                    PlotXRange = (int)-p.X;
                    UpdatePolynomDiagram();
                }
            }
        }
Пример #13
0
        public override void Started(OxyMouseEventArgs e)
        {
            base.Started(e);

            var isZoomEnabled = (this.XAxis != null && this.XAxis.IsZoomEnabled) ||
                                (this.YAxis != null && this.YAxis.IsZoomEnabled);

            if (!isZoomEnabled)
            {
                return;
            }

            var current = this.InverseTransform(e.Position.X, e.Position.Y);

            var scale = this.Step;

            if (this.FineControl)
            {
                scale *= 3;
            }

            scale = 1 + scale;

            // make sure the zoom factor is not negative
            if (scale < 0.1)
            {
                scale = 0.1;
            }

            switch (AxisDescription)
            {
            case EAxisDescription.XY:
                if (this.XAxis != null)
                {
                    this.XAxis.ZoomAt(scale, current.X);
                }
                if (this.YAxis != null)
                {
                    this.YAxis.ZoomAt(scale, current.Y);
                }
                break;

            case EAxisDescription.X:
                if (this.XAxis != null)
                {
                    this.XAxis.ZoomAt(scale, current.X);
                }
                break;

            case EAxisDescription.Y:
                if (this.YAxis != null)
                {
                    this.YAxis.ZoomAt(scale, current.Y);
                }
                break;
            }

            this.PlotView.InvalidatePlot(false);
            e.Handled = true;
        }
Пример #14
0
        /// <summary>
        /// Occurs when an input device begins a manipulation on the plot.
        /// </summary>
        /// <param name="e">The <see cref="OxyInputEventArgs" /> instance containing the event data.</param>
        public override void Started(OxyMouseEventArgs e)
        {
            base.Started(e);

            var current = this.InverseTransform(e.Position.X, e.Position.Y);

            double scale = this.Step;

            if (this.FineControl)
            {
                scale *= 3;
            }

            scale = 1 + scale;

            // make sure the zoom factor is not negative
            if (scale < 0.1)
            {
                scale = 0.1;
            }

            if (this.XAxis != null)
            {
                this.XAxis.ZoomAt(scale, current.X);
            }

            if (this.YAxis != null)
            {
                this.YAxis.ZoomAt(scale, current.Y);
            }

            this.PlotView.InvalidatePlot(false);
        }
Пример #15
0
        private void PlotMouseMove(object sender, OxyMouseEventArgs e)
        {
            if (_cs.Items.Count != 0)
            {
                _endPoint1 = _cs.InverseTransform(e.Position);
                if (_startPoint1.X != 0 || _startPoint1.Y != 0)
                {
                    _ms._pm.Annotations.Clear();

                    var rectangle = new PolygonAnnotation();
                    rectangle.Layer           = AnnotationLayer.BelowAxes;
                    rectangle.StrokeThickness = 1;
                    rectangle.Stroke          = OxyColors.Red;
                    rectangle.Fill            = OxyColors.Transparent;
                    rectangle.LineStyle       = OxyPlot.LineStyle.Dot;

                    rectangle.Points.Add(new DataPoint(_startPoint1.X, _startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(_endPoint1.X, _startPoint1.Y));
                    rectangle.Points.Add(new DataPoint(_endPoint1.X, _endPoint1.Y));
                    rectangle.Points.Add(new DataPoint(_startPoint1.X, _endPoint1.Y));

                    _ms._pm.Annotations.Add(rectangle as Annotation);
                    _ms._pm.InvalidatePlot(true);
                }
            }
        }
Пример #16
0
        private void Plot_MouseUp(object sender, OxyMouseEventArgs e)
        {
            if (MouseMoveState == MoveState.CreatingRange)
            {
                // Don't create the range if it does not have a size set
                if (Math.Abs(_activeRange.MinimumX - _activeRange.MaximumX) > 0.0001)
                {
                    // Flip ends around if the user dragged backwards
                    if (_activeRange.MinimumX > _activeRange.MaximumX)
                    {
                        var temp = _activeRange.MaximumX;
                        _activeRange.MaximumX = _activeRange.MinimumX;
                        _activeRange.MinimumX = temp;
                    }

                    // Clamp to 0 if the user dragged behind the start
                    if (_activeRange.MinimumX < 0)
                    {
                        _activeRange.MinimumX = 0;
                    }

                    RangeCreated?.Invoke(_activeRange, _activeRange.MinimumX, _activeRange.MaximumX);
                }
                else
                {
                    SetRanges.Remove(_activeRange);
                    _activeRange.MinimumX = _activeRange.MaximumX = 0;
                    RangeRemoved?.Invoke(_activeRange, _activeRange.MinimumX, _activeRange.MaximumX);
                }
                Model.InvalidatePlot(false);
            }

            MouseMoveState = MoveState.None;
        }
Пример #17
0
        private void Plot_MouseMove(object sender, OxyMouseEventArgs e)
        {
            if (MouseMoveState == MoveState.None)
            {
                return;
            }

            var x = PlotSeries.InverseTransform(e.Position).X;

            if (MouseMoveState == MoveState.MovingRange)
            {
                var change = (x - _moveStartX) + _clickStartXOffset;
                var size   = Math.Abs(_clickedRange.MaximumX - _clickedRange.MinimumX);

                _clickedRange.MinimumX = Math.Max(_moveStartX + change, 0);
                _clickedRange.MaximumX = _clickedRange.MinimumX + size;
                //model.Subtitle = string.Format("Integrating from {0:0.00} to {1:0.00}", range.MinimumX, range.MaximumX);
            }
            else
            {
                _activeRange.MinimumX = Math.Min(x, _clickStartX);
                _activeRange.MaximumX = Math.Max(x, _clickStartX);
            }

            _activeRange.Text = $"{_activeRange.MinimumX / 1000:F0} - {_activeRange.MaximumX / 1000:F0}";
            //model.Subtitle = string.Format("Integrating from {0:0.00} to {1:0.00}", range.MinimumX, range.MaximumX);
            Model.InvalidatePlot(false);
            e.Handled = true;
        }
Пример #18
0
        /// <summary>
        /// Occurs when an input device begins a manipulation on the plot.
        /// </summary>
        /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
        public override void Started(OxyMouseEventArgs e)
        {
            base.Started(e);
            this.currentSeries = this.PlotView.ActualModel != null?this.PlotView.ActualModel.GetSeriesFromPoint(e.Position) : null;

            this.Delta(e);
        }
Пример #19
0
        private void Model_MouseUp(object sender, OxyMouseEventArgs e)
        {
            isPanBar = false;

            if (RectangleUI != null && isSelected)
            {
                if (Math.Abs(RectangleUI.X1 - RectangleUI.X0) < 10)
                {
                    ClearBar();
                    SelectedData.Clear();
                }
                else
                {
                    double min = RectangleUI.X0 < RectangleUI.X1 ? RectangleUI.X0 : RectangleUI.X1;
                    double max = RectangleUI.X0 > RectangleUI.X1 ? RectangleUI.X0 : RectangleUI.X1;
                    RectangleUI       = new RectangleBarItem(min, Int16.MinValue, max, Int16.MaxValue);
                    RectangleUI.Color = OxyColor.FromArgb(100, 250, 0, 0);
                    Bar.Items.Add(RectangleUI);
                    Bar.Items.RemoveAt(0);
                    Line.Points.Where(point => point.X > min && point.X < max).ToList().ForEach(p =>
                    {
                        SelectedData.Add(new Complex(p.Y, 0));
                    });
                    LastX = (int)min;
                    Debug.WriteLine(SelectedData.Count());
                }
            }
            isSelected = false;
        }
Пример #20
0
        private void myModel_MouseMove(object sender, OxyMouseEventArgs ex)
        {
            if (PlotMouseDown && StartROISet)
            {
                double dataTmp = xValueAxis.InverseTransform(ex.Position.X);
                switch (ROIState)
                {
                case 0:
                case 2:
                    ROI1.Points.Clear();
                    ROI1.Points.Add(new DataPoint(dataTmp, -100000));
                    ROI1.Points.Add(new DataPoint(dataTmp, 100000));
                    ROIX[0] = dataTmp;
                    myModel.InvalidatePlot(true);
                    break;

                case 1:
                case 3:
                    ROI2.Points.Clear();
                    ROI2.Points.Add(new DataPoint(dataTmp, -100000));
                    ROI2.Points.Add(new DataPoint(dataTmp, 100000));
                    ROIX[1] = dataTmp;
                    myModel.InvalidatePlot(true);
                    break;
                }
            }
        }
Пример #21
0
 private void Plot_MouseMove(object sender, OxyMouseEventArgs e)
 {
     if (isMouseRightButtonDown)
     {
         DrawFunctions();
     }
 }
Пример #22
0
        private static void ProcLostTimePlot_MouseDown(object sender, OxyMouseEventArgs e,
                                                       ViewController viewController, int intervalNum)
        {
            DateTime now = DateTime.Now;

            if (now.Subtract(procSelectionLastClick).TotalMilliseconds < 500.0)
            {
                var s       = sender as ColumnSeries;
                var nearest = s.GetNearestPoint(e.Position, false);
                var i       = (int)nearest.DataPoint.X;
                var model   = s.PlotModel;
                foreach (var ser in model.Series)
                {
                    var color = (ser as ColumnSeries).FillColor;
                    model.InvalidatePlot(true);
                    for (int j = 0; j < (ser as ColumnSeries).Items.Count; ++j)
                    {
                        (ser as ColumnSeries).Items[j].Color =
                            color.ChangeSaturation((j == i) ? 1 : 0.5);
                    }
                }
                viewController.SelectProcessor(i, intervalNum);
            }
            procSelectionLastClick = now;
        }
 private void PlotModel_MouseMove(object sender, OxyMouseEventArgs e)
 {
     CursorPosition = viewModel.GetComplexCursorPositionOnPlot(e.Position);
     if (w.f is Hydrodynamics_Sources.Conformal_Maps.Diffusor && CursorPosition.Im < 0)
     {
         V = w.V_physical_plane(CursorPosition.Conjugate);
         V = V.Conjugate;
     }
     else
     {
         V = w.V_physical_plane(CursorPosition);
     }
     if (w.f is Hydrodynamics_Sources.Conformal_Maps.EjectedRays && CursorPosition.Re < 0 && (Math.Abs(CursorPosition.Im) < CursorPosition.Re * Math.Tan((w.f as Hydrodynamics_Sources.Conformal_Maps.EjectedRays).Angle)))
     {
         V = -V;
     }
     if (w.f is Hydrodynamics_Sources.Conformal_Maps.EjectedRays && CursorPosition.Re < 0 && (w.f as Hydrodynamics_Sources.Conformal_Maps.EjectedRays).Angle == Mathematical_Sources.MathematicalConstants.PiDividedOnTwo)
     {
         V = -V;
     }
     if (Complex.IsNaN(V) || IsCursorInBorder())
     {
         ClearTextBoxes();
         return;
     }
     else
     {
         xTextBox.Text  = CursorPosition.Re.ToString(Settings.Format);
         yTextBox.Text  = CursorPosition.Im.ToString(Settings.Format);
         VxTextBox.Text = V.Re.ToString(Settings.Format);
         VyTextBox.Text = V.Im.ToString(Settings.Format);
     }
 }
        private void DrawLine_OnMouseMove(object sender, OxyMouseEventArgs args)
        {
            if (_tempAnnot == null)
                return;

            Axis xAxis = ChartModel.Axes.First(a => a.IsHorizontal());
            Axis yAxis = ChartModel.Axes.First(a => a.IsVertical());
            var type = (LimitType) uiSetTypeComboBox.SelectedItem;

            var annot = _tempAnnot as LineAnnotation;
            if (annot != null)
            {
                if (type == LimitType.None)
                {
                    double x1 = annot.X;
                    double x2 = xAxis.InverseTransform(args.Position.X);
                    double y1 = annot.Y;
                    double y2 = yAxis.InverseTransform(args.Position.Y);
                    double slope = (y2 - y1) / (x2 - x1);

                    annot.Intercept = y2 - slope * x2;
                    annot.Slope = slope;
                }
                else if (type == LimitType.Vertical)
                    annot.X = xAxis.InverseTransform(args.Position.X);
                else if (type == LimitType.Horizontal)
                    annot.Y = yAxis.InverseTransform(args.Position.Y);
            }

            ChartModel.InvalidatePlot(false);
            args.Handled = true;
        }
Пример #25
0
            private void ReallyCompleted(OxyMouseEventArgs e)
            {
                base.Completed(e);

                // Must unhook or this object will live as long as the model (instead of as long as the manipulation)
                _plotModel.TrackerChanged -= HandleTrackerChanged;
            }
Пример #26
0
        public void pm_MouseUp(object sender, OxyMouseEventArgs e)
        {
            if (this.coupling_isEnabled && this.coupling_isMeasure)
            {
                coupling_end                = new DataPoint(this.getActivePlotView().Model.Axes[0].InverseTransform(e.Position.X), this.getActivePlotView().Model.Axes[1].InverseTransform(e.Position.Y));
                coupling_isEnabled          = false;
                coupling_isMeasure          = false;
                this.mdiTabMenu.BorderBrush = new SolidColorBrush(Color.FromArgb(255, 63, 81, 181));
                EPRPlotView pw = this.getActivePlotView();
                this.CouplingButton.Foreground = Brushes.Black;
                pw.Model.Annotations.Clear();
                pw.spc.A.Add(new Tuple <DataPoint, DataPoint>(coupling_start, coupling_end));
                this.RefreshData();
            }
            if (this.g_isPicking)
            {
                this.getActiveSpectrum().g.Add(this.getActiveSpectrum().calcG(this.getActivePlotView().Model.Axes[0].InverseTransform(e.Position.X)));
                this.g_isPicking            = false;
                this.mdiTabMenu.BorderBrush = new SolidColorBrush(Color.FromArgb(255, 63, 81, 181));
                this.gButton.Foreground     = Brushes.Black;

                //refresh couplings && g
                this.RefreshData();
            }
        }
Пример #27
0
        private void PlotModel_MouseMove(object sender, OxyMouseEventArgs e)
        {
#if !HELP_FOR_GROUP_LEADER
            CursorPosition = viewModel.GetComplexCursorPositionOnPlot(e.Position);
            if (w.f is Hydrodynamics_Sources.Conformal_Maps.IdentityTransform)
            {
                V = w.V_physical_plane(CursorPosition);
                if (Complex.IsNaN(V) || IsCursorInBorder())
                {
                    ClearTextBoxes();
                    return;
                }
                else
                {
                    xTextBox.Text  = CursorPosition.Re.ToString(Settings.Format);
                    yTextBox.Text  = CursorPosition.Im.ToString(Settings.Format);
                    VxTextBox.Text = V.Re.ToString(Settings.Format);
                    VyTextBox.Text = V.Im.ToString(Settings.Format);
                }
            }
            else
            {
                xTextBox.Text  = CursorPosition.Re.ToString(Settings.Format);
                yTextBox.Text  = CursorPosition.Im.ToString(Settings.Format);
                VxTextBox.Text = string.Empty;
                VyTextBox.Text = string.Empty;
            }
#endif
        }
Пример #28
0
 private void PlotMouseDown(object sender, OxyMouseEventArgs e)
 {
     // if (e.ChangedButton == OxyMouseButton.Left) {
     MovingSeries     = PlotModel.GetSeriesFromPoint(e.Position) as MapLineSeries;
     MoveLastPosition = BottomAxis.InverseTransform(e.Position.X, e.Position.Y, LeftAxis);
     //e.Handled = true;
     // }
 }
Пример #29
0
 private void PlotMouseUp(object sender, OxyMouseEventArgs e)
 {
     if (MovingSeries != null)
     {
         MovingSeries = null;
         // e.Handled = true;
     }
 }
Пример #30
0
 private void OnModelOnMouseUp(object s, OxyMouseEventArgs e)
 {
     if (!double.IsNaN(_startx))
     {
         _startx = double.NaN;
         RangeChangedFromMouseSelection?.Invoke(this, EventArgs.Empty);
     }
 }
Пример #31
0
        /// <summary>
        /// Occurs when a manipulation is complete.
        /// </summary>
        /// <param name="e">
        /// The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.
        /// </param>
        public override void Completed(OxyMouseEventArgs e)
        {
            base.Completed(e);
            e.Handled = true;

            currentSeries = null;
            PlotView.HideTracker();
        }
Пример #32
0
        /// <summary>
        /// Occurs when a manipulation is complete.
        /// </summary>
        /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
        public override void Completed(OxyMouseEventArgs e)
        {
            base.Completed(e);

            this.currentSeries = null;
            this.PlotView.HideTracker();
            if (this.PlotView.ActualModel != null)
            {
                this.PlotView.ActualModel.OnTrackerChanged(null);
            }
        }
Пример #33
0
        /// <summary>
        /// Occurs when the input device changes position during a manipulation.
        /// </summary>
        /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
        public override void Delta(OxyMouseEventArgs e)
        {
            base.Delta(e);
            if (this.XAxis != null)
            {
                this.XAxis.Pan(this.PreviousPosition, e.Position);
            }

            if (this.YAxis != null)
            {
                this.YAxis.Pan(this.PreviousPosition, e.Position);
            }

            this.PlotView.InvalidatePlot(false);
            this.PreviousPosition = e.Position;
        }
Пример #34
0
        /// <summary>
        /// Occurs when the input device changes position during a manipulation.
        /// </summary>
        /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
        public override void Delta(OxyMouseEventArgs e)
        {
            base.Delta(e);

            if (this.currentSeries == null || !this.LockToInitialSeries)
            {
                // get the nearest
                this.currentSeries = this.PlotView.ActualModel != null ? this.PlotView.ActualModel.GetSeriesFromPoint(e.Position, 20) : null;
            }

            if (this.currentSeries == null)
            {
                if (!this.LockToInitialSeries)
                {
                    this.PlotView.HideTracker();
                }

                return;
            }

            var actualModel = this.PlotView.ActualModel;
            if (actualModel == null)
            {
                return;
            }

            if (!actualModel.PlotArea.Contains(e.Position.X, e.Position.Y))
            {
                return;
            }

            var result = GetNearestHit(this.currentSeries, e.Position, this.Snap, this.PointsOnly);
            if (result != null)
            {
                result.PlotModel = this.PlotView.ActualModel;
                this.PlotView.ShowTracker(result);
                this.PlotView.ActualModel.OnTrackerChanged(result);
            }
        }
Пример #35
0
 /// <summary>
 /// Occurs when an input device begins a manipulation on the plot.
 /// </summary>
 /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
 public override void Started(OxyMouseEventArgs e)
 {
     base.Started(e);
     this.PreviousPosition = e.Position;
 }
Пример #36
0
 /// <summary>
 /// Zooms the view by the specified factor at the position specified in the <see cref="OxyMouseEventArgs" />.
 /// </summary>
 /// <param name="view">The view.</param>
 /// <param name="args">The <see cref="OxyMouseWheelEventArgs" /> instance containing the event data.</param>
 /// <param name="delta">The zoom factor.</param>
 private static void HandleZoomAt(IPlotView view, OxyMouseEventArgs args, double delta)
 {
     var m = new ZoomStepManipulator(view) { Step = delta, FineControl = args.IsControlDown };
     m.Started(args);
 }
Пример #37
0
 /// <summary>
 /// Occurs when an input device begins a manipulation on the plot.
 /// </summary>
 /// <param name="e">The <see cref="OxyPlot.OxyMouseEventArgs" /> instance containing the event data.</param>
 public override void Started(OxyMouseEventArgs e)
 {
     base.Started(e);
     this.currentSeries = this.PlotView.ActualModel != null ? this.PlotView.ActualModel.GetSeriesFromPoint(e.Position) : null;
     this.Delta(e);
 }