コード例 #1
0
        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;
            }
        }
コード例 #2
0
        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();
        }