// Initialize the ResizingAdorner. public ResizeAdorner(Canvas adornedElement, PropDesigner vm, Rect bounds) : base(adornedElement) { this.vm = vm; _bounds = bounds; _visualChildren = new VisualCollection(this); // Call a helper method to initialize the Thumbs // with a customized cursors. BuildAdornerCorner(ref _topLeft, Cursors.SizeNWSE); BuildAdornerCorner(ref _topRight, Cursors.SizeNESW); BuildAdornerCorner(ref _bottomLeft, Cursors.SizeNESW); BuildAdornerCorner(ref _bottomRight, Cursors.SizeNWSE); BuildAdornerCorner(ref _middleTop, Cursors.SizeNS); BuildAdornerCorner(ref _middleRight, Cursors.SizeWE); BuildAdornerCorner(ref _middleBottom, Cursors.SizeNS); BuildAdornerCorner(ref _middleLeft, Cursors.SizeWE); BuildAdornerCorner(ref _centerDrag, Cursors.SizeAll); Style s = (Style)vm.FindResource("RotateThumbStyle"); BuildAdornerCorner(ref _rotate, Cursors.Hand, s); // Add handlers for resizing. _bottomLeft.DragDelta += HandleBottomLeft; _bottomRight.DragDelta += HandleBottomRight; _topLeft.DragDelta += HandleTopLeft; _topRight.DragDelta += HandleTopRight; _middleTop.DragDelta += HandleMiddleTop; _middleRight.DragDelta += HandleMiddleRight; _middleBottom.DragDelta += HandleMiddleBottom; _middleLeft.DragDelta += HandleMiddleLeft; _centerDrag.DragDelta += HandleCenterDrag; _centerDrag.DragStarted += _centerDrag_DragStarted; _rotate.DragDelta += HandleRotate; _rotationCenter = Center(Bounds); _rotateTransform = new RotateTransform(_rotationAngle, _rotationCenter.X, _rotationCenter.Y); _reverseRotateTransform = new RotateTransform(_rotationAngle, _rotationCenter.X, _rotationCenter.Y); }