private Point MoveWithNegative270Rotation(Point translation, CustomControl control) { double dx = Canvas.GetLeft(control) + translation.Y; double dy = Canvas.GetTop(control) - translation.X; Canvas.SetTop(control, dy); Canvas.SetLeft(control, dx); this.CheckControlBounds(control); Point point = new Point(Canvas.GetLeft(control) + control.Width / 2, Canvas.GetTop(control) + control.Height / 2); return point; }
private void CheckControlBounds(CustomControl control) { if ((Canvas.GetLeft(control) + control.Width / 2) < 0) Canvas.SetLeft(control, -control.Width / 2); if (Canvas.GetLeft(control) + control.Width / 2 > this.vb.ActualWidth) Canvas.SetLeft(control, this.vb.ActualWidth - control.Width / 2); if ((Canvas.GetTop(control) + control.Height / 2) < 0) Canvas.SetTop(control, -control.Height / 2); if (Canvas.GetTop(control) + control.Height / 2 > this.vb.ActualHeight) Canvas.SetTop(control, this.vb.ActualHeight - control.Height / 2); }