UniformGridLayout Class

Definition

Positions elements sequentially from left to right or top to bottom in a wrapping layout.

/// [Microsoft.UI.Xaml.CustomAttributes.MUXContractProperty(version=0)]
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackMethodName(value="OnPropertyChanged")]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.Version(1)]
class UniformGridLayout : VirtualizingLayout
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
/// [Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackMethodName(value="OnPropertyChanged")]
/// [Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
/// [Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
/// [Windows.Foundation.Metadata.ContractVersion(Microsoft.UI.Xaml.XamlContract, 65536)]
class UniformGridLayout : VirtualizingLayout
[Microsoft.UI.Xaml.CustomAttributes.MUXContractProperty(version=0)]
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackMethodName(value="OnPropertyChanged")]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.Version(1)]
public class UniformGridLayout : VirtualizingLayout
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallback(enable=true)]
[Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackMethodName(value="OnPropertyChanged")]
[Windows.Foundation.Metadata.MarshalingBehavior(Windows.Foundation.Metadata.MarshalingType.Agile)]
[Windows.Foundation.Metadata.Threading(Windows.Foundation.Metadata.ThreadingModel.Both)]
[Windows.Foundation.Metadata.ContractVersion(typeof(Microsoft.UI.Xaml.XamlContract), 65536)]
public class UniformGridLayout : VirtualizingLayout
Public Class UniformGridLayout
Inherits VirtualizingLayout
Inheritance
Object IInspectable DependencyObject Layout VirtualizingLayout UniformGridLayout
Attributes
Microsoft.UI.Xaml.CustomAttributes.MUXContractPropertyAttribute Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackAttribute Microsoft.UI.Xaml.CustomAttributes.MUXPropertyChangedCallbackMethodNameAttribute MarshalingBehaviorAttribute ThreadingAttribute VersionAttribute ContractVersionAttribute

Examples

Tip

For more info, design guidance, and code examples, see ItemsRepeater.

The WinUI 3 Gallery app includes interactive examples of most WinUI 3 controls, features, and functionality. Get the app from the Microsoft Store or get the source code on GitHub.

The following example shows how to set the ItemsRepeater.Layout property to a UniformGridLayout.

<!--
    xmlns:muxc="using:Microsoft.UI.Xaml.Controls"
-->
...
<muxc:ItemsRepeater ItemsSource="{x:Bind Items}"
                    ItemTemplate="{StaticResource MyTemplate}">
    <muxc:ItemsRepeater.Layout>
        <muxc:UniformGridLayout MinItemWidth="200"
                                MinColumnSpacing="28"
                                ItemsJustification="SpaceAround"/>
    </muxc:ItemsRepeater.Layout>
</muxc:ItemsRepeater>

Remarks

Items are layed out in order from left-to-right when the Orientation is Horizontal, and layed out top-to-bottom when the Orientation is Vertical.

Every item in a UniformGridLayout is sized equally.

UniformGridLayout supports virtualization when attached to a host that supports virtualization.

Constructors

UniformGridLayout()

Initializes a new instance of the UniformGridLayout class.

Properties

Dispatcher

Always returns null in a Windows App SDK app. Use DispatcherQueue instead.

(Inherited from DependencyObject)
DispatcherQueue

Gets the DispatcherQueue that this object is associated with. The DispatcherQueue represents a facility that can access the DependencyObject on the UI thread even if the code is initiated by a non-UI thread.

(Inherited from DependencyObject)
IndexBasedLayoutOrientation

Gets the orientation, if any, in which items are laid out based on their index in the source collection.

(Inherited from Layout)
ItemsJustification

Gets or sets a value that indicates how items are aligned on the non-scrolling or non-virtualizing axis.

ItemsJustificationProperty

Identifies the ItemsJustification dependency property.

ItemsStretch

Gets or sets a value that indicates how items are sized to fill the available space.

ItemsStretchProperty

Identifies the ItemsStretch dependency property.

MaximumRowsOrColumns

Gets or sets the maximum number of items rendered per row or column, based on the orientation of the UniformGridLayout.

MaximumRowsOrColumnsProperty

Identifies the MaximumRowsOrColumns dependency property.

MinColumnSpacing

Gets or sets the minimum space between items on the horizontal axis.

MinColumnSpacingProperty

Identifies the MinColumnSpacing dependency property.

MinItemHeight

Gets or sets the minimum height of each item.

MinItemHeightProperty

Identifies the MinItemHeight dependency property.

MinItemWidth

Gets or sets the minimum width of each item.

MinItemWidthProperty

Identifies the MinItemWidth dependency property.

MinRowSpacing

Gets or sets the minimum space between items on the vertical axis.

MinRowSpacingProperty

Identifies the MinRowSpacing dependency property.

Orientation

Gets or sets the axis along which items are laid out.

OrientationProperty

Identifies the Orientation dependency property.

Methods

Arrange(LayoutContext, Size)

Positions child elements and determines a size for a container UIElement. Container elements that support attached layouts should call this method from their layout override implementations to form a recursive layout update.

(Inherited from Layout)
ArrangeOverride(VirtualizingLayoutContext, Size)

When implemented in a derived class, provides the behavior for the "Arrange" pass of layout. Classes can override this method to define their own "Arrange" pass behavior.

(Inherited from VirtualizingLayout)
ClearValue(DependencyProperty)

Clears the local value of a dependency property.

(Inherited from DependencyObject)
CreateDefaultItemTransitionProvider() (Inherited from Layout)
GetAnimationBaseValue(DependencyProperty)

Returns any base value established for a dependency property, which would apply in cases where an animation is not active.

(Inherited from DependencyObject)
GetValue(DependencyProperty)

Returns the current effective value of a dependency property from a DependencyObject.

(Inherited from DependencyObject)
InitializeForContext(LayoutContext)

Initializes any per-container state the layout requires when it is attached to a UIElement container.

(Inherited from Layout)
InitializeForContextCore(VirtualizingLayoutContext)

When overridden in a derived class, initializes any per-container state the layout requires when it is attached to a UIElement container.

(Inherited from VirtualizingLayout)
InvalidateArrange()

Invalidates the arrange state (layout) for all UIElement containers that reference this layout. After the invalidation, the UIElement will have its layout updated, which occurs asynchronously.

(Inherited from Layout)
InvalidateMeasure()

Invalidates the measurement state (layout) for all UIElement containers that reference this layout.

(Inherited from Layout)
Measure(LayoutContext, Size)

Suggests a DesiredSize for a container element. A container element that supports attached layouts should call this method from their own MeasureOverride implementations to form a recursive layout update. The attached layout is expected to call the Measure for each of the container’s UIElement children.

(Inherited from Layout)
MeasureOverride(VirtualizingLayoutContext, Size)

Provides the behavior for the "Measure" pass of the layout cycle. Classes can override this method to define their own "Measure" pass behavior.

(Inherited from VirtualizingLayout)
OnItemsChangedCore(VirtualizingLayoutContext, Object, NotifyCollectionChangedEventArgs)

Notifies the layout when the data collection assigned to the container element (ItemsSource) has changed.

(Inherited from VirtualizingLayout)
ReadLocalValue(DependencyProperty)

Returns the local value of a dependency property, if a local value is set.

(Inherited from DependencyObject)
RegisterPropertyChangedCallback(DependencyProperty, DependencyPropertyChangedCallback)

Registers a notification function for listening to changes to a specific DependencyProperty on this DependencyObject instance.

(Inherited from DependencyObject)
SetIndexBasedLayoutOrientation(IndexBasedLayoutOrientation)

Sets the value of the IndexBasedLayoutOrientation property.

(Inherited from Layout)
SetValue(DependencyProperty, Object)

Sets the local value of a dependency property on a DependencyObject.

(Inherited from DependencyObject)
UninitializeForContext(LayoutContext)

Removes any state the layout previously stored on the UIElement container.

(Inherited from Layout)
UninitializeForContextCore(VirtualizingLayoutContext)

When overridden in a derived class, removes any state the layout previously stored on the UIElement container.

(Inherited from VirtualizingLayout)
UnregisterPropertyChangedCallback(DependencyProperty, Int64)

Cancels a change notification that was previously registered by calling RegisterPropertyChangedCallback.

(Inherited from DependencyObject)

Events

ArrangeInvalidated

Occurs when the arrange state (layout) has been invalidated.

(Inherited from Layout)
MeasureInvalidated

Occurs when the measurement state (layout) has been invalidated.

(Inherited from Layout)

Applies to

See also