- validate
- validateVisibility
- applyTemplate
- checkNeedMeasure
- invalidateFuture
- prepareOverride
- doOverride
- Assign
desiredSizebased on compilation of childdesiredSize.
- Assign
- completeOverride
- finishDesired
- Use
PreviousConstraintasavailableSizeto initiate start of measure traversal - Fall back to infinite size for
availableSizeif root layout container is not attached and noPreviousConstraint - [#_Measure]
- Invalidates visual parent's measure if
DesiredSizechanged - Clear dirty flags
- Validate
availableSizeisn't NaN - If
Collapsed: setPreviousConstrainttoavailableSize, clearDesiredSize, skip out - Memoized
ApplyTemplate - If does not have dirty measure flag and
PreviousConstraintequalsnulloravailableSize: skip out - Save
availableSizetoPreviousConstraint - Invalidate Arrange
- Update Bounds
- Shrink available by
Margin - Coerce
availableSize(Width,MinWidth,MaxWidth,Height,MinHeight,MaxHeight,UseLayoutRounding) - [#
MeasureOverride] ->response - Save
responseasHiddenDesire - Clear dirty flags
- If root or parent is
Canvasand isCanvas: clearDesiredSize, skip out - Coerce
response - Grow by
Margin - Set
responseto min ofresponseandavailableSize - Round if
UseLayoutRounding - Set
DesiredSizetoresponse
- Control-specific layout
- Falls into children [#_Measure]