Example #1
0
        protected override void AttachCore(PointSelector selector, Plotter plotter)
        {
            if (selector == null)
            {
                throw new ArgumentNullException("selector");
            }
            if (plotter == null)
            {
                throw new ArgumentNullException("plotter");
            }

            this.selector = selector;
            this.plotter  = (Plotter2D)plotter;

            leftButtonClickWrapper        = new MouseClickWrapper(plotter.CentralGrid, MouseButton.Left);
            leftButtonClickWrapper.Click += new MouseButtonEventHandler(OnLeftButtonClick);
        }
        protected override void AttachCore(PointSelector selector, Plotter plotter)
        {
            if (selector == null)
            {
                throw new ArgumentNullException("selector");
            }
            if (plotter == null)
            {
                throw new ArgumentNullException("plotter");
            }

            this.selector = selector;
            this.plotter  = (Plotter2D)plotter;

            foreach (FrameworkElement element in selector.MarkerChart.Items)
            {
                element.Cursor             = Cursors.No;
                element.MouseLeftButtonUp += element_MouseLeftButtonUp;
            }
        }
Example #3
0
        protected override void AttachCore(PointSelector selector, Plotter plotter)
        {
            if (selector == null)
            {
                throw new ArgumentNullException("selector");
            }
            if (plotter == null)
            {
                throw new ArgumentNullException("plotter");
            }

            this.selector = selector;
            this.plotter  = (Plotter2D)plotter;
            var transform = this.plotter.Transform;

            // copying all markers from marker chart to InkCanvas to enable their selection
            foreach (FrameworkElement marker in selector.MarkerChart.Items)
            {
                var xamlString = XamlWriter.Save(marker);
                var markerCopy = (FrameworkElement)XamlReader.Parse(xamlString);

                var   x                = ViewportPanel.GetX(marker);
                var   y                = ViewportPanel.GetY(marker);
                Point position         = new Point(x, y);
                var   positionInScreen = position.ViewportToScreen(transform);

                if (!marker.IsMeasureValid)
                {
                    marker.Measure(new Size(double.PositiveInfinity, double.PositiveInfinity));
                }

                InkCanvas.SetLeft(markerCopy, positionInScreen.X - marker.Width / 2);
                InkCanvas.SetTop(markerCopy, positionInScreen.Y - marker.Height / 2);
                markerCopy.DataContext = marker.DataContext;

                inkCanvas.Children.Add(markerCopy);
            }

            plotter.CentralGrid.Children.Add(inkCanvas);
        }
Example #4
0
        private static void OnModeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
        {
            PointSelector owner = (PointSelector)d;

            owner.UpdateModeHandler();
        }