private void OnProcessed(Frame frame)
        {
            var result = (MotionProcessorResult)frame.ProcessorResult;

            if (result == null || Application.Current == null)
            {
                return;
            }

            Application.Current.Dispatcher.Invoke(() =>
            {
                if (chkUpdatePlot.IsChecked.Value)
                {
                    try
                    {
                        _chart.AddPoint(result.FrameIndex, result.ChangedPixelsCount);
                    }
                    catch
                    {
                    }
                }

                Activity.Add(new Point(result.FrameIndex, result.ChangedPixelsCount));
                lblChangedPixels.Content = string.Format("Changed Pixels: {0:n0}", result.ChangedPixelsCount);
            });
        }
        public void AddPointsToChart(List <Point> points)
        {
            _activity = new List <Point>(points);

            _chart.Clear();
            _activity.ForEach(p => _chart.AddPoint((int)p.X, (int)p.Y));

            UpdateBoundsLabels();
        }
        public void AddPointsToChart(List <Point> points)
        {
            _activity = new List <Point>(points);

            _chart.Clear();
            _activity.ForEach(p => _chart.AddPoint((int)p.X, (int)p.Y));
            _chart.FrameMin = (int)_activity.Min(p => p.X);
            _chart.FrameMax = (int)_activity.Max(p => p.X);
            _chart.SetRange(_chart.FrameMin, _chart.FrameMax);

            UpdateBoundsLabels();
        }