Assembly: System.Windows (in System.Windows.dll)
- Type: System.Windows.Size
The available space that a parent can allocate 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.
There is no reason to call or Arrange outside of the context of overriding methods that perform custom layout actions. Windows Phone layout works autonomously, based on detecting changes to the object tree and layout-relevant properties at run time. For more information, see Layout for Windows Phone 8.
The availableSize you pass to cannot have a Double.NaN value for either the Height or Width of the Size. availableSize values can be any number from zero to infinite. Elements participating in layout should return the minimum Size they require for a given availableSize.
The following 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 , 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 Overloads Overrides Function MeasureOverride(ByVal availableSize As Size) As Size 'Measure first 9 children giving them space up to 100x100, remaining children get 0x0 Dim i As Integer = 0 For Each child As FrameworkElement In Children If i < 9 Then child.Measure(New Size(100, 100)) Else child.Measure(New Size(0, 0)) End If i += 1 Next 'return the size available to the whole panel, which is 300x300 Return New Size(300, 300) End Function