protected virtual ViewItem GetLayoutView(ViewItem element) { return(element); }
internal override Rect GetBoundingBox(ViewItem element) { return(ElementUtilities.GetSelectionFrameBounds(element)); }
internal override Rect GetBoundingBox(ViewItem element) { return(ElementUtilities.GetRenderSizeBounds(element)); }
internal abstract Transform GetAncestorTransform(ViewItem element, UIElement ancestor);
internal abstract Vector GetOrigin(ViewItem element);
internal abstract FlowDirection GetFlowDirection(ViewItem element);
internal abstract Transform GetLayoutTransform(ViewItem element);
public abstract GeneralTransform TransformToView(ViewItem view);
internal abstract Rect GetBoundingBox(ViewItem element);
public abstract bool IsDescendantOf(ViewItem ancestor);
internal virtual void ComputePlacement(AdornerCoordinateSpace space, UIElement adorner, ViewItem adornedElement, Vector zoom, System.Windows.Size finalSize) { double num1 = 0.0; double num2 = 0.0; double height = 0.0; double num3 = 0.0; double num4 = 0.0; double width = 0.0; bool flag1 = false; bool flag2 = false; bool flag3 = false; bool flag4 = false; System.Windows.Size viewFinalSize = finalSize; foreach (IAdornerPlacement adornerPlacement in (Collection <IAdornerPlacement>) this) { foreach (AdornerPlacementValue adornerPlacementValue in adornerPlacement.GetSizeTerms(space, adorner, adornedElement, zoom, viewFinalSize)) { switch (adornerPlacementValue.Term) { case AdornerPlacementDimension.Left: num3 += adornerPlacementValue.Contribution; flag3 = true; continue; case AdornerPlacementDimension.Top: num1 += adornerPlacementValue.Contribution; flag1 = true; continue; case AdornerPlacementDimension.Right: num4 += adornerPlacementValue.Contribution; flag3 = true; continue; case AdornerPlacementDimension.Bottom: num2 += adornerPlacementValue.Contribution; flag2 = true; continue; case AdornerPlacementDimension.Width: width += adornerPlacementValue.Contribution; continue; case AdornerPlacementDimension.Height: height += adornerPlacementValue.Contribution; continue; default: continue; } } } if (width < 0.0) { width = 0.0; } if (height < 0.0) { height = 0.0; } System.Windows.Size computedAdornerSize = new System.Windows.Size(width, height); foreach (IAdornerPlacement adornerPlacement in (Collection <IAdornerPlacement>) this) { foreach (AdornerPlacementValue adornerPlacementValue in adornerPlacement.GetPositionTerms(space, adorner, adornedElement, zoom, computedAdornerSize)) { switch (adornerPlacementValue.Term) { case AdornerPlacementDimension.Left: num3 += adornerPlacementValue.Contribution; flag3 = true; continue; case AdornerPlacementDimension.Top: num1 += adornerPlacementValue.Contribution; flag1 = true; continue; case AdornerPlacementDimension.Right: num4 += adornerPlacementValue.Contribution; flag3 = true; continue; case AdornerPlacementDimension.Bottom: num2 += adornerPlacementValue.Contribution; flag2 = true; continue; case AdornerPlacementDimension.Width: width += adornerPlacementValue.Contribution; continue; case AdornerPlacementDimension.Height: height += adornerPlacementValue.Contribution; continue; default: continue; } } } double num5 = 0.0; if (flag3 && flag4) { num5 = num4 - num3; } double num6 = 0.0; if (flag1 && flag2) { num6 = num2 - num1; } double num7 = num5 + width; double num8 = num6 + height; this._topLeft.X = !flag4 || flag3 ? num3 : num4 - num7; this._size.X = num7; this._topLeft.Y = !flag2 || flag1 ? num1 : num2 - num8; this._size.Y = num8; }
public void SizeRelativeToContentWidth(double factor, double offset, ViewItem relativeTo) { this.Add((IAdornerPlacement) new SizeRelativeToContentWidth(factor, offset, relativeTo)); }
public void PositionRelativeToContentHeight(double factor, double offset, ViewItem relativeTo) { this.Add((IAdornerPlacement) new PositionRelativeToContentHeight(factor, offset, relativeTo)); }
internal override void ComputePlacement(AdornerCoordinateSpace space, UIElement adorner, ViewItem adornedElement, Vector zoom, Size finalSize) { if (this.Items.Count == 0) { this.Populate(); } base.ComputePlacement(space, adorner, adornedElement, zoom, finalSize); }