private void AddThumb(Point p) { var pd = new PointDragThumb(_view, AdornedElement as FrameworkElement); pd.DragDelta += PointDragDelta; pd.PreviewMouseLeftButtonUp += OnPreviewMouseLeftButtonUp; visualChildren.Add(pd); _poly.UpdateLayout(); }
public override void Activate() { _poly = AdornedElement as Polyline; if (_poly == null) { throw new ArgumentException(); } foreach (var p in _poly.Points) { var pd = new PointDragThumb(_view, AdornedElement as FrameworkElement); pd.DragStarted += PointDragStarted; pd.DragDelta += PointDragDelta; pd.PreviewMouseLeftButtonUp += OnPreviewMouseLeftButtonUp; visualChildren.Add(pd); } for (int i = 0; i < _poly.Points.Count; i++) { var m = _poly.GeometryTransform.Value; var p = m.Transform(_poly.Points[i]); p = _poly.TranslatePoint(p, _view.MainPanel); _poly.Points[i] = p; } _poly.Stretch = Stretch.None; EditorHelper.SetDependencyProperty(_poly, Canvas.LeftProperty, DependencyProperty.UnsetValue); EditorHelper.SetDependencyProperty(_poly, Canvas.TopProperty, DependencyProperty.UnsetValue); EditorHelper.SetDependencyProperty(_poly, FrameworkElement.WidthProperty, DependencyProperty.UnsetValue); EditorHelper.SetDependencyProperty(_poly, FrameworkElement.HeightProperty, DependencyProperty.UnsetValue); _poly.RenderTransform = null; AdornerLayer.GetAdornerLayer(AdornedElement).PreviewMouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(PolylineEditManipulantor_PreviewMouseLeftButtonDown); _poly.UpdateLayout(); base.Activate(); }