private void AddAdorner(UIElement element) { var adornerLayer = AdornerLayer.GetAdornerLayer(element); if (adornerLayer != null) { var adorner = new SizeAdorner(element); adornerLayer.Add(adorner); adorner.Visibility = Visibility.Visible; } }
private void DrawFeedback(Point pointBegin, Point pointEnd) { Rect rect = new Rect(pointBegin, pointEnd); this.ToolBehaviorContext.SnappingEngine.UpdateTargetBounds(rect); DrawingContext drawingContext = this.OpenFeedback(); Pen thinPen = FeedbackHelper.GetThinPen(this.ActiveView.Zoom); System.Windows.Media.Geometry rectangleGeometry = Adorner.GetTransformedRectangleGeometry(this.ActiveView, this.ActiveSceneInsertionPoint.SceneElement, rect, thinPen.Thickness, false); drawingContext.DrawGeometry((Brush)null, thinPen, rectangleGeometry); if (!Adorner.NonAffineTransformInParentStack(this.ActiveSceneInsertionPoint.SceneElement)) { Matrix computedTransformToRoot = this.ActiveView.GetComputedTransformToRoot(this.ActiveSceneInsertionPoint.SceneElement); double scale = 1.0 / this.ActiveView.Zoom; SizeAdorner.DrawDimension(drawingContext, ElementLayoutAdornerType.Right, computedTransformToRoot, computedTransformToRoot, thinPen, rect, scale); SizeAdorner.DrawDimension(drawingContext, ElementLayoutAdornerType.Bottom, computedTransformToRoot, computedTransformToRoot, thinPen, rect, scale); } this.CloseFeedback(); }