Exemple #1
0
        private void marker_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                MouseButtonEventArgs arg = e as MouseButtonEventArgs;
                if (arg.ChangedButton == MouseButton.Right)
                {
                    SeriesEventMarker marker = sender as SeriesEventMarker;
                    marker.MouseUp -= marker_MouseUp;
                    FreeformPointLineSeries fpls = marker.GetOwnerSeries() as FreeformPointLineSeries;
                    int index = fpls.SeriesEventMarkers.IndexOf(marker);
                    if (index == 0 || index == fpls.SeriesEventMarkers.Count - 1)
                    {
                        return;
                    }

                    m_chart.BeginUpdate();
                    fpls.SeriesEventMarkers.Remove(marker);
                    FitSpline(fpls);
                    m_chart.EndUpdate();
                }
            }
            catch (Exception ex)
            {
                EventAggregatorService.Instance.EventAggregator.GetEvent <ThrowExceptionEvent>().Publish(Tuple.Create <string, Exception>("数据回放-动态拟合-移除点", ex));
            }
        }
        private void marker_PositionChanged(SeriesEventMarker sender, double x, double y, ref bool cancelRendering)
        {
            try
            {
                //Set new value to point having same index than the marker
                FreeformPointLineSeries fpls = sender.GetOwnerSeries() as FreeformPointLineSeries;
                int iPointIndex = fpls.SeriesEventMarkers.IndexOf(sender);
                if (iPointIndex >= 0)
                {
                    cancelRendering = true;

                    FitSpline(fpls);
                }
            }
            catch (Exception ex)
            {
                EventAggregatorService.Instance.EventAggregator.GetEvent <ThrowExceptionEvent>().Publish(Tuple.Create <string, Exception>("数据回放-动态拟合-移动点", ex));
            }
        }