public MoverManipulationEventArgs(UIElement sourceElement, RectManipulations manipulation) { sourceElement.AssertNotNull(nameof(sourceElement)); SourceElement = sourceElement; Manipulation = manipulation; }
public static Cursor GetCursor(RectManipulations manipulations) { if (manipulations == RectManipulations.Move) { return(Cursors.SizeAll); } if (manipulations == RectManipulations.ResizeL || manipulations == RectManipulations.ResizeR) { return(Cursors.SizeWE); } if (manipulations == RectManipulations.ResizeT || manipulations == RectManipulations.ResizeB) { return(Cursors.SizeNS); } if (manipulations == (RectManipulations.ResizeL | RectManipulations.ResizeT) || manipulations == (RectManipulations.ResizeR | RectManipulations.ResizeB)) { return(Cursors.SizeNWSE); } if (manipulations == (RectManipulations.ResizeL | RectManipulations.ResizeB) || manipulations == (RectManipulations.ResizeR | RectManipulations.ResizeT)) { return(Cursors.SizeNESW); } return(Cursors.Arrow); }
protected virtual bool HandlePerformManipulation(UIElement sourceElement, RectManipulations manipulations, Vector sizeVector, Vector positionVector) { var args = new MoverPerformManipulationEventArgs(sourceElement, manipulations, sizeVector, positionVector); PerformManipulation?.Invoke(this, args); return(!args.Cancel); }
protected virtual bool HandleBeginManipulation(UIElement sourceElement, RectManipulations manipulations) { var args = new MoverManipulationEventArgs(sourceElement, manipulations); BeginManipulation?.Invoke(this, args); return(!args.Cancel); }
public static void GetManipulationsVectors(RectManipulations manipulations, Point mousePos, Point prevMousePos, out Vector positionVector, out Vector sizeVector) { var deltaX = mousePos.X - prevMousePos.X; var deltaY = mousePos.Y - prevMousePos.Y; positionVector = new Vector(0, 0); sizeVector = new Vector(0, 0); if (manipulations.HasFlag(RectManipulations.Move)) { positionVector.X = deltaX; positionVector.Y = deltaY; } if (manipulations.HasFlag(RectManipulations.ResizeR)) { sizeVector.X += deltaX; } if (manipulations.HasFlag(RectManipulations.ResizeB)) { sizeVector.Y += deltaY; } if (manipulations.HasFlag(RectManipulations.ResizeL)) { positionVector.X += deltaX; sizeVector.X += -deltaX; } if (manipulations.HasFlag(RectManipulations.ResizeT)) { positionVector.Y += deltaY; sizeVector.Y += -deltaY; } }
public MoverManipulationInfo(UIElement sourceElement, RectManipulations manipulations, Point prevMousePos) { SourceElement = sourceElement; Manipulations = manipulations; PrevMousePos = prevMousePos; }
protected virtual void HandleReleaseManipulation(UIElement sourceElement, RectManipulations manipulations) { var args = new MoverManipulationEventArgs(sourceElement, manipulations); ReleaseManipulation?.Invoke(this, args); }
public MoverPerformManipulationEventArgs(UIElement sourceElement, RectManipulations manipulation, Vector sizeVector, Vector positionVector) : base(sourceElement, manipulation) { SizeVector = sizeVector; PositionVector = positionVector; }