Exemple #1
0
 public TrendPresenter(TrendPen trendPen)
 {
     _trendPen = trendPen;
     TrendTag = trendPen.TrendTag;
     LineThickness = trendPen.Thickness;
     LineBrush = trendPen.Brush;
     _queryTimer.Elapsed += QueryTimerElapsed;
     Loaded += TrendPresenterLoaded;
     Unloaded += TrendPresenterUnloaded;
 }
Exemple #2
0
 public TrendPresenter(TrendPen trendPen)
 {
     _trendPen            = trendPen;
     TrendTag             = trendPen.TrendTag;
     LineThickness        = trendPen.Thickness;
     LineBrush            = trendPen.Brush;
     _queryTimer.Elapsed += QueryTimerElapsed;
     Loaded   += TrendPresenterLoaded;
     Unloaded += TrendPresenterUnloaded;
 }
Exemple #3
0
 public SliderPresenter(TrendPen pen)
 {
     InitializeComponent();
     DataContext = pen;
 }
 public SliderPresenter(TrendPen pen)
 {
     InitializeComponent();
     DataContext = pen;
 }
Exemple #5
0
        private void AddPen(TrendPen trendPen)
        {
            var trendTagBinding = BindingOperations.GetBinding(trendPen, TrendPen.TrendTagProperty);
            if (trendTagBinding != null
                && trendTagBinding.Source == null
                && trendTagBinding.RelativeSource == null
                && trendTagBinding.ElementName == null)
            {
                BindingOperations.ClearBinding(trendPen, TrendPen.TrendTagProperty);
                trendTagBinding = new Binding(trendTagBinding.Path.Path) {Source = DataContext};
                BindingOperations.SetBinding(trendPen, TrendPen.TrendTagProperty, trendTagBinding);
            }
            var trendPresenter = new TrendPresenter(trendPen) { MaxPoints = _maxPoints };
            var showPointsBinding = new Binding("ShowPoints") { Source = this };
            trendPresenter.SetBinding(TrendPresenter.ShowPointsProperty, showPointsBinding);
            _trendPresenters.Add(trendPen, trendPresenter);
            _gTrendPresenters.Children.Add(trendPresenter);
            _trendPens.Add(trendPen);

            #region Slider

            var sliderPresenter = new SliderPresenter(trendPen);
            _sliderPresenters.Add(trendPen, sliderPresenter);
            sliderPresenter.SizeChanged += SliderPresenterSizeChanged;
            sliderPresenter.LayoutUpdated += SliderPresenterLayoutUpdated;
            _spSlider.Children.Add(sliderPresenter);
            var sliderPresenterVisibilityBinding = new Binding("Visible")
                {
                    Source = trendPen,
                    Converter = new BooleanToVisibilityConverter()
                };
            sliderPresenter.SetBinding(VisibilityProperty, sliderPresenterVisibilityBinding);
            var sliderLine = new Line();
            _sliderLines.Add(trendPen, sliderLine);
            sliderLine.Stroke = _sliderLinesBrush;
            sliderLine.StrokeThickness = _sliderLinesThickness;
            var cursorCoordinateBinding = new Binding("CursorCoordinate") { Source = trendPresenter };
            sliderLine.SetBinding(Line.Y1Property, cursorCoordinateBinding);
            var sliderLineVisibilityBinding = new MultiBinding {Converter = new SliderLineVisibilityConverter()};
            sliderLineVisibilityBinding.Bindings.Add(new Binding("Visible") { Source = trendPen });
            sliderLineVisibilityBinding.Bindings.Add(new Binding("CursorCoordinate") { Source = trendPresenter });
            sliderLine.SetBinding(VisibilityProperty, sliderLineVisibilityBinding);

            UpdateSliderLine(sliderLine, trendPen);
            _cSlider.Children.Add(sliderLine);

            #endregion
        }
Exemple #6
0
 private void UpdateSliderLine(Line line, TrendPen trendPen)
 {
     if (!_sliderPresenters.ContainsKey(trendPen))
         return;
     var sliderPresenter = _sliderPresenters[trendPen];
     var transform = sliderPresenter.TransformToVisual(_cSlider);
     var position = transform.Transform(new Point(0, 0));
     line.Y2 = position.Y + sliderPresenter.ActualHeight/2;
     if (position.X < 0)
     {
         line.X2 = position.X + sliderPresenter.ActualWidth;
     }
     else
     {
         line.X2 = position.X;
     }
 }
Exemple #7
0
        private void RemovePen(TrendPen trendPen)
        {
            var trendPresenter = _trendPresenters[trendPen];
            BindingOperations.ClearBinding(trendPresenter, TrendPresenter.ShowPointsProperty);
            _trendPresenters.Remove(trendPen);
            _gTrendPresenters.Children.Remove(trendPresenter);
            _trendPens.Remove(trendPen);

            #region Slider

            var sliderPresenter = _sliderPresenters[trendPen];
            _sliderPresenters.Remove(trendPen);
            sliderPresenter.SizeChanged -= SliderPresenterSizeChanged;
            sliderPresenter.LayoutUpdated -= SliderPresenterLayoutUpdated;
            _spSlider.Children.Remove(sliderPresenter);
            BindingOperations.ClearBinding(sliderPresenter, VisibilityProperty);
            var sliderLine = _sliderLines[trendPen];
            _sliderLines.Remove(trendPen);
            BindingOperations.ClearBinding(sliderLine, Line.Y1Property);
            BindingOperations.ClearBinding(sliderLine, VisibilityProperty);
            _cSlider.Children.Remove(sliderLine);

            #endregion
        }
Exemple #8
0
 private void OnCurrentTrendPenChanged(TrendPen oldPen, TrendPen newPen)
 {
     if (oldPen != null)
     {
         if (_trendPens.Contains(oldPen))
         {
             var presenter = _trendPresenters[oldPen];
             _gTrendPresenters.Children.Remove(presenter);
             var index = _trendPens.IndexOf(oldPen);
             _gTrendPresenters.Children.Insert(index, presenter);
         }
     }
     if (newPen != null)
     {
         if (_trendPens.Contains(newPen))
         {
             var presenter = _trendPresenters[newPen];
             _gTrendPresenters.Children.Remove(presenter);
             _gTrendPresenters.Children.Insert(_gTrendPresenters.Children.Count, presenter);
         }
     }
 }