Table of Contents

Namespace Icy.Design.Editor.Placement

Classes

GridPlacement

Places elements in a Grid: a drop lands in the cell under the pointer, and a resize grows or shrinks Grid.RowSpan/Grid.ColumnSpan as the dragged edge crosses into the next track.

LayoutMath

Margin and size arithmetic that follows how IcyUI arranges an element inside its slot.

MarginPlacement

The fallback placement: an element moves by its margin, alignment-aware, and resizes by its size (or, on a stretched axis, by the margin on the dragged side). Used for any container without a registered strategy.

MarginPlacement.Resize

The size-or-margin resize every strategy builds on.

MarkupValues

Writes layout values the way people write them in markup.

PlacementContext

What a placement strategy knows about a container and the element being moved or resized in it. Rectangles are in the container's local space: (0, 0) is the container's top-left corner.

PlacementRegistry

Chooses the placement strategy for a container: the registration for the most derived of its types, or MarginPlacement when none matches.

PlacementTarget

Where a dropped element lands in a container.

StackPanelPlacement

Places elements in a StackPanel: a drop lands in the nearest gap between children, and a resize along the stacking direction changes only the size, since a stack anchors its children there. A stretched child gets an explicit size on the cross axis too: the stack sizes itself to its children, so a margin couldn't grow it.

Structs

AttributeEdit

One attribute a placement writes or removes.

AxisResize

The result of resizing one axis.

PlacementChild

A container's content child as a placement sees it.

Interfaces

IPlacementStrategy

Turns moves and resizes inside one kind of container into attribute edits: an insertion index for a stack, a cell for a grid, margins for anything else.

IResizeOperation

One resize gesture in progress. It remembers the element's state when the gesture started, so every update is computed from that state and rounding never accumulates.

Enums

AxisKind

How an element is positioned on one axis.

ResizeHandle

The edges a resize handle moves. Corner handles combine two edges.