- validate
- validateVisibility
- applyTemplate
- checkNeedMeasure
- invalidateFuture
- prepareOverride
- doOverride
- Assign
desiredSize
based on compilation of childdesiredSize
.
- Assign
- completeOverride
- finishDesired
- Use
PreviousConstraint
asavailableSize
to initiate start of measure traversal - Fall back to infinite size for
availableSize
if root layout container is not attached and noPreviousConstraint
- [#_Measure]
- Invalidates visual parent's measure if
DesiredSize
changed - Clear dirty flags
- Validate
availableSize
isn't NaN - If
Collapsed
: setPreviousConstraint
toavailableSize
, clearDesiredSize
, skip out - Memoized
ApplyTemplate
- If does not have dirty measure flag and
PreviousConstraint
equalsnull
oravailableSize
: skip out - Save
availableSize
toPreviousConstraint
- Invalidate Arrange
- Update Bounds
- Shrink available by
Margin
- Coerce
availableSize
(Width
,MinWidth
,MaxWidth
,Height
,MinHeight
,MaxHeight
,UseLayoutRounding
) - [#
MeasureOverride
] ->response
- Save
response
asHiddenDesire
- Clear dirty flags
- If root or parent is
Canvas
and isCanvas
: clearDesiredSize
, skip out - Coerce
response
- Grow by
Margin
- Set
response
to min ofresponse
andavailableSize
- Round if
UseLayoutRounding
- Set
DesiredSize
toresponse
- Control-specific layout
- Falls into children [#_Measure]