public IEnumerable <AdornerPlacementValue> GetPositionTerms(AdornerCoordinateSpace space, UIElement adorner, ViewItem adornedElement, Vector zoom, Size computedAdornerSize) { double width = 0.0; ViewItem element = !(this._relativeTo == (ViewItem)null) ? this._relativeTo : adornedElement; if (element != (ViewItem)null) { width = space.GetBoundingBox(element).Width; } Vector targetPositionScale = ScaledSpace.GetTargetPositionScale(adorner); double left = (this._factor * width + this._offset) * targetPositionScale.X; yield return(new AdornerPlacementValue(AdornerPlacementDimension.Left, left)); }
public IEnumerable <AdornerPlacementValue> GetPositionTerms(AdornerCoordinateSpace space, UIElement adorner, ViewItem adornedElement, Vector zoom, Size computedAdornerSize) { double height = 0.0; ViewItem element = !(this._relativeTo == (ViewItem)null) ? this._relativeTo : adornedElement; if (element != (ViewItem)null) { height = space.GetBoundingBox(element).Height; } Vector targetPositionScale = ScaledSpace.GetTargetPositionScale(adorner); double top = (this._factor * height + this._offset) * targetPositionScale.Y; yield return(new AdornerPlacementValue(AdornerPlacementDimension.Top, top)); }
public IEnumerable <AdornerPlacementValue> GetSizeTerms(AdornerCoordinateSpace space, UIElement adorner, ViewItem adornedElement, Vector zoom, Size adornedElementFinalSize) { double height = 0.0; ViewItem element = (ViewItem)null; element = !(this._relativeTo == (ViewItem)null) ? this._relativeTo : adornedElement; if (element != (ViewItem)null) { height = space.GetBoundingBox(element).Height; } Vector targetSizeScale = ScaledSpace.GetTargetSizeScale(adorner, zoom); height = (this._factor * height + this._offset) * targetSizeScale.Y; yield return(new AdornerPlacementValue(AdornerPlacementDimension.Height, height)); }
private void SetAdornerBounds(UIElement childAdorner, ViewItem adornedElement, Point location, Vector scale) { AdornerCoordinateSpace @default = AdornerCoordinateSpaces.Default; Rect finalRect; if (adornedElement != (ViewItem)null) { finalRect = @default.GetBoundingBox(adornedElement); } else { Size desiredSize = childAdorner.DesiredSize; finalRect = new Rect(); finalRect.Width = desiredSize.Width; finalRect.Height = desiredSize.Height; } finalRect.X = location.X; finalRect.Y = location.Y; finalRect.Width *= Math.Abs(scale.X); finalRect.Height *= Math.Abs(scale.Y); childAdorner.Arrange(finalRect); }