/// <summary> /// Gets the absolute enclosing rectangle without taking into account ScaleX, ScaleY, Rotation and Shear (SSRS). /// </summary> /// <returns>The enclosing rectangle in absolute values.</returns> public RectangleD2D GetAbsoluteEnclosingRectangleWithoutSSRS() { var mySizeX = _sizeX.GetValueRelativeTo(_parentSize.X); var mySizeY = _sizeY.GetValueRelativeTo(_parentSize.Y); var myPosX = _parentAnchorX.GetValueRelativeTo(_parentSize.X) + _positionX.GetValueRelativeTo(_parentSize.X) - _localAnchorX.GetValueRelativeTo(mySizeX); var myPosY = _parentAnchorY.GetValueRelativeTo(_parentSize.Y) + _positionY.GetValueRelativeTo(_parentSize.Y) - _localAnchorY.GetValueRelativeTo(mySizeY); return(new RectangleD2D(myPosX, myPosY, mySizeX, mySizeY)); }
public void ChangeParentAnchorButKeepPosition(RADouble newParentAnchorX, RADouble newParentAnchorY) { var oldRefX = _parentAnchorX.GetValueRelativeTo(_parentSize.X); var oldRefY = _parentAnchorY.GetValueRelativeTo(_parentSize.Y); var newRefX = newParentAnchorX.GetValueRelativeTo(_parentSize.X); var newRefY = newParentAnchorY.GetValueRelativeTo(_parentSize.Y); var oldPos = AbsolutePosition; InternalSetAbsolutePositionXSilent(oldPos.X + (oldRefX - newRefX)); InternalSetAbsolutePositionYSilent(oldPos.Y + (oldRefY - newRefY)); _parentAnchorX = newParentAnchorX; _parentAnchorY = newParentAnchorY; }
public void ChangeParentAnchorButKeepPosition(RADouble newParentAnchorX, RADouble newParentAnchorY, RADouble newParentAnchorZ) { var oldRefX = _parentAnchorX.GetValueRelativeTo(_parentSize.X); var oldRefY = _parentAnchorY.GetValueRelativeTo(_parentSize.Y); var oldRefZ = _parentAnchorZ.GetValueRelativeTo(_parentSize.Z); var newRefX = newParentAnchorX.GetValueRelativeTo(_parentSize.X); var newRefY = newParentAnchorY.GetValueRelativeTo(_parentSize.Y); var newRefZ = newParentAnchorZ.GetValueRelativeTo(_parentSize.Z); var oldPos = this.AbsolutePosition; this.InternalSetAbsolutePositionXSilent(oldPos.X + (oldRefX - newRefX)); this.InternalSetAbsolutePositionYSilent(oldPos.Y + (oldRefY - newRefY)); this.InternalSetAbsolutePositionZSilent(oldPos.Z + (oldRefZ - newRefZ)); _parentAnchorX = newParentAnchorX; _parentAnchorY = newParentAnchorY; _parentAnchorZ = newParentAnchorZ; }