[This documentation is preliminary and is subject to change.]
Updates the DesiredSize of a UIElement. Typically, objects that implement custom layout for their layout children call this method from their own MeasureOverride implementations to form a recursive layout update.
Syntax
Parameters
- availableSize
-
Type: Size
The available space that a parent can allocate to a child object. A child object can request a larger space than what is available; the provided size might be accommodated if scrolling or other resize behavior is possible in that particular container.
Remarks
The Measure call potentially reaches a MeasureOverride implementation of that specific class. Otherwise, most FrameworkElement classes have an implicit default layout behavior for Measure.
Examples
This example implements MeasureOverride to customize the "Measure" pass logic for a custom panel implementation. Note in particular these aspects of the code:
-
Iterates over children.
-
For each child, calls Measure, using a Size that makes sense based on how the panel logic treats the number of children and its own known size limit.
-
Returns its size (in this case, this simple panel returns a fixed size rather than a size calculated on accumulating the measurements).
// First measure all children and return available size of panel protected override Size MeasureOverride(Size availableSize) { // Measure first 9 children giving them space up to 100x100, remaining children get 0x0 int i = 0; foreach (FrameworkElement child in Children) { if (i < 9) { child.Measure(new Size(100, 100)); } else { child.Measure(new Size(0, 0)); } i++; } // return the size available to the whole panel, which is 300x300 return new Size(300, 300); }
Requirements
|
Minimum supported client | Windows 8 Release Preview |
|---|---|
|
Minimum supported server | Windows Server 2012 |
|
Namespace |
|
|
Metadata |
|
See also
Build date: 5/22/2012
