Lays out children in a grid formation.

RowCount and ColumnCount properties

If what you need is a certain number of equally sized rows and/or columns, you can use the RowCount and ColumnCount properties.

``<Grid RowCount="4" ColumnCount="2"/>``

By default, elements in the grid are placed in the order they appear in UX, from left to right, top to bottom. However, you can explicitly specify per element which grid cell they should be placed in using the `Row` and `Column` properties.

``````<Grid RowCount="1" ColumnCount="2">
<Rectangle Row="0" Column="1" Color="Red"/>
<Rectangle Row="0" Column="0" Color="Blue"/>
</Grid>``````

If you want an element to occupy multiple rows or columns, you can use the `RowSpan` and `ColumnSpan` properties.

``````<Grid RowCount="2" ColumnCount="2">
<Rectangle ColumnSpan="2" RowSpan="2" Color="Red"/>
</Grid>``````

Rows and Columns properties

More fine grained control of how the rows and column sizes are calculated can be achieved with the Rows and Columns properties. These properties accept a comma separated list of grid sizes which can take on a few different forms. The values can either be absolute, relative or automatic.

Example of a Grid with 3 rows of size 10, 10 and 50 points, and 3 columns, the first each occupy 20% of the available space and the last one occupies 60%.

``<Grid Rows="10,10,50" Columns="1*,1*,3*"/>``

The proportional column sizes here are calculated by first summing all the values (1+1+3 = 5). Then we divide our value by the total (1/5 = 20%, 1/5 = 20%, 3/5 = 60%).

Note that proportional sizes only make sense if the grid is expanding to fill the parent panel, or has a fixed size. If it is shrinking to fit it's contents the proportional rows/columns will have zero size.

The following Grid has 2 rows where the first row gets the height of the tallest element in that row, and the second row takes up any remaining space:

``<Grid Rows="auto,1*" />``

Location

Namespace
Fuse.Controls
Package
Fuse.Controls.Panels 2.9.1
Show Uno properties and methods

Interface of Grid

CellSpacing : float ux

The spacing between cells, in points.

ChildOrder : GridChildOrder ux

Whether the children are ordered in rows or columns for automatic cell placement.

ColumnCount : int ux

If specified, children will be distributed into the given number of columns, of equal width.

Columns : string ux

The sizes of the columns of the grid as a comma-separated list.

ContentAlignment : Alignment ux

The alignment of content within the cells.

DefaultColumn : string ux

The default grid size of an automatically created column.

DefaultRow : string ux

The default grid size of an automatically created row.

RowCount : int ux

If specified, children will be distributed into the given number of rows, of equal height.

Rows : string ux

The sizes of the rows of the grid as a comma-separated list of grid sizes.

SetColumn(Element, int) uno

The index of the column the element occupies while in a Grid. If not set, the grid will place the element in a cell according to its position in the child list.

SetColumnSpan(Element, int) uno

The number of columns this element occupies in a Grid. Defaults to 1.

SetRow(Element, int) uno

The index of the row the element occupies while in a Grid. If not set, the grid will place the element in a cell according to its position in the child list.

SetRowSpan(Element, int) uno

The number of rows this element occupies in a Grid. Defaults to 1.

Inherited from Panel

Color : float4 ux

The background color of the panel. This property is a shortcut for setting the `Background` property to a `SolidColor` brush. Supports being set using a `float4` notation, or hexadecimal values(f.ex `#FF00AA`)

Defers the freezing of the panel until the children are no longer busy.

IsFrozen : bool ux

When `true` the panel is in a frozen state. This means: - layout of the children is blocked - child invalidation does not invalidate this panel - the visual drawing is captured once and used for all future drawing

Inherited from LayoutControl

Layout : Layout ux

The layout that will be applied to the children.

Inherited from Control

Background : Brush ux

The brush that will used to paint the background of this control.

Inherited from Element

ActualAnchor : float2 uno

The anchor of element.

ActualPosition : float2 uno

The position of the element, the position of its top-left corner to the top-left corner in the parent.

ActualSize : float2 uno

The size of the element.

Alignment : Alignment ux

The Alignment of the `Element`.

Anchor : Size2 ux

A point within the element to treat as its "epicenter".

The provided LayoutParams is guaranteed to have a defined size that should be used to layout the padding box.

Aspect : float ux

The aspect ratio that an element must fulfill in layout.

AspectConstraint : AspectConstraint ux

Determines how the aspect ratio is maintained in a situation when it violates the min or max sizing constraints.

BoxSizing : BoxSizingMode ux

The manner in which the size and position of the element is calculated.

CachingMode : CachingMode ux

How the element's visuals are cached while drawing.

ClipToBounds : bool ux

Clips the child elements to the bounds of this element visually.

Height : Size ux

The height of the `Element`.

HitTestMode : HitTestMode ux

Specifies how hit tests should be performed on this element.

LimitHeight : Size ux

The height limit for an element using `BoxSizing="Limit"`.

LimitWidth : Size ux

The width limit for an element using `BoxSizing="Limit"`.

Margin : float4 ux

The margin of the `Element` in points.

MaxHeight : Size ux

The maximum height of the `Element`.

MaxWidth : Size ux

The maximum width of the `Element`.

MinHeight : Size ux

The minimum height of the `Element`.

MinWidth : Size ux

The minimum width of the `Element`.

Offset : Size2 ux

Offets the position of the element after all other layout has been applied.

Opacity : float ux

The opacity of the element.

The padding of the `Element` in points.

Placed : PlacedHandler (object, PlacedArgs) ux

Raised when the element receives a new position and size by the layout engine.

Position : Size2 ux

The combined `X` and `Y` position of the element.

Size : Size2 ux

The combined `Width` and `Height` of the element.

TransformOrigin : ITransformOrigin ux

Specifies the origin of transformation used by transformation behaviors and animators such as Move, Scale, Rotation, Scaling, etc.

Visibility : Visibility ux

The Visibility of the `Element`.

Width : Size ux

The width of the `Element`.

X : Size ux

The `X` location of the `Element`.

Y : Size ux

The `Y` location of the `Element`.

Inherited from Visual

AbsoluteViewportOrigin : float2 uno

Returns the origin of this Visual in the viewport (world) space.

BeginRemoveChild(Node, Action<Node> (Node)) uno

Begins removing a given node, playing all RemovedAnimations before actual removal.

BeginRemoveVisual(Visual, Action<Node> (Node)) uno

Begins removing a given visual, playing all RemovedAnimations before actual removal.

bringIntoView() js

Requests that this visual be brought into the visible are of the screen. Typically a containing `ScrollView` will scroll to ensure it is visible.

BringToFront(Visual) uno

Brings the given child to the front of the Z-order. In UX markup, use the BringToFront trigger action instead.

ChildCount : int uno

The number of child nodes of this visual.

Children : IList of Node ux

The children of the visual. All nodes placed inside the visual in UX markup are assigned to this list. The order of Visuals this list determines the order of layout. The Z-order of the children is by default equal to this order, but can be manipulated separately using methods like BringToFront and SendToBack.

FirstChild<T> : T uno

Returns the first child node of the given type.

GetZOrderChild(int) : Visual uno

Get the Visual for a given z-order

HasVisualChildren : bool uno

Whether this visual has any visual child nodes.

InsertAfter(Node, Node) uno

Inserts a child node after the given sibling node.

InvalidateLayout(InvalidateLayoutReason) uno

Indicates that this element requires a new layout as some layout parameters or content have changed.

InvalidateRenderBounds uno

Indicates the `RenderBounds` have changed and need to be recalculated.

InvalidateVisual uno

Indicates the visual for this node has changed. This allows the root-level node to know that it must draw, and any caching that it must invalidate the cache for this node.

InvalidateVisualComposition uno

Indicates the composition of the visual has changed, but that the visual drawing itself is still valid (for example a position change).

IsContextEnabled : bool uno

Whether this node is in an enabled context. The context is disabled if one of the ancestor nodes have IsEnabled set to `false`.

IsEnabled : bool ux

Whether this node is currently interactable. Disabled visuals do not receive input focus. However, they can still be visible and block hit test for underlaying objects.

IsLocalVisible : bool uno

Returns whether this visual is visible without concern for whether an ancestor visual is hidden or collapsed.

IsVisible : bool uno

Returns whether this visual is currently visible. Will return false if any of the ancestor visuals are hidden or collapsed. This property can not be used to check whether a visual is hidden because it is occluded by another visual, or is outside the view but otherwise visible.

LastChild<T> : T uno

Returns the last child node of the given type.

Layer : Layer ux

The layer this visual belongs to in the Parent container.

LayoutRole : LayoutRole ux

Describes how this visual participates in layout.

LocalToParent(float2) : float2 uno

Converts a coordinate from the local space into the parent space.

onParameterChanged(callback) js

Registers a function to be called whenever the routing parameter is changed.

Parameter : string ux

The parameter data for this visual, encoded as JSON, provided by a router if this visual represents a navigation page.

RemoveAllChildren<T> uno

Removes all children of the given type.

Resources : IList of Resource ux

The list of resources defined at this node.

SendToBack(Visual) uno

Sends the given child to the back of the Z-order. In UX markup, use the SendToBack trigger action instead.

SnapToPixels : bool ux

Whether to snap the result of layout of this visual to physical device pixels.

Templates : IList of Template ux

List of templates that will be used to populate this Visual.

TryParentToLocal(float2, float2) : bool uno

Converts a coordinate from the parent space into the local space.

VisualChildCount : int uno

The number of child visuals of this visual.

ZOffset : float ux

Specifies a Z-Offset, visuals with higher values are in front of other visuals.

Inherited from Node

Bindings : IList of Binding ux

The list of bindings belonging to this node.

ContextParent : Node uno

The context parent is the semantic parent of this node. It is where non-UI structure should be resolved, like looking for the DataContext, a Navigation, or other semantic item.

FindNodeByName(Selector, Predicate<Node> (Node)) : Node uno

Finds the first node with a given name that satisfies the given acceptor. The serach algorithm works as follows: Nodes in the subtree are matched first, then it matches the nodes in the subtrees ofthe ancestor nodes by turn all the way to the root. If no matching node is found, the function returns null.

IsRootingCompleted : bool uno

Whether rooting for this node is completed. Returns false if unrooting has started.

IsRootingStarted : bool uno

Whether rooting of this node has started. Note that even if this property returns true, rooting may not yet be completed for the node. See also IsRootingCompleted.

Name : Selector ux

Run-time name of the node. This property is automatically set using the ux:Name attribute.

NextSibling<T> : T uno

Returns the next sibling node of the given type.

OnRooted uno

If you override `OnRooted` you must call `base.OnRooted()` first in your derived class. No other processing should happen first, otherwise you might end up in an undefined state.

Parent : Visual uno

The parent Visual of this node. Will return null if the node is not rooted.

PreviousSibling<T> : T uno

Returns the next sibling node of the given type.

Properties : Properties uno

A linked list holding data for extrinsic properties.

hide

hide

Attached UX Attributes

Dock (attached by DockPanel) : Dock ux

Specifies how an element is docked while inside a DockPanel

Items (attached by Each) : object ux

The item collection that will be used to populate this visual.

MatchKey (attached by Each) : string ux

Shorthand for setting the `MatchKey` property on the implicit `Each` created when using the `Items` attached property.

LayoutMaster (attached by LayoutControl) : Element ux

Makes an element inherit the layout of another.

Gained (attached by AttachedFocusMembers) : FocusGainedHandler (object, FocusGainedArgs) ux

Called when a Visual receives input focus.

Lost (attached by AttachedFocusMembers) : FocusLostHandler (object, FocusLostArgs) ux

Called when a Visual loses input focus.

KeyPressed (attached by AttachedKeyboardMembers) : KeyPressedHandler (object, KeyPressedArgs) ux

Called when a Visual receives a key press event while having input focus. On mobile devices, keyboard input only applies to physical buttons (such as BackButton), not soft keyboards.

KeyReleased (attached by AttachedKeyboardMembers) : KeyReleasedHandler (object, KeyReleasedArgs) ux

Called when a Visual receives a key release event while having input focus. On mobile devices, keyboard input only applies to physical buttons (such as BackButton), not soft keyboards.

LayoutMasterMode (attached by LayoutMasterAttr) : LayoutMasterMode ux

Determines how the layout of the master element is used to control the size of this one.

Activated (attached by Activated) : PulseHandler (object, EventArgs) ux

Adds a handler for when the page is Activated

Deactivated (attached by Deactivated) : PulseHandler (object, EventArgs) ux

Adds a handler for when the page is Deactivated

Entered (attached by AttachedPointerMembers) : PointerEnteredHandler (object, PointerEnteredArgs) ux

Called when a pointer enters a visual.

Left (attached by AttachedPointerMembers) : PointerLeftHandler (object, PointerLeftArgs) ux

Called when a pointer leaves a visual.

Moved (attached by AttachedPointerMembers) : PointerMovedHandler (object, PointerMovedArgs) ux

Called when a pointer is moved on a visual.

Pressed (attached by AttachedPointerMembers) : PointerPressedHandler (object, PointerPressedArgs) ux

Called when a pointer is pressed on the visual.

Released (attached by AttachedPointerMembers) : PointerReleasedHandler (object, PointerReleasedArgs) ux

Called when a pointer is released on a visual.

WheelMoved (attached by AttachedPointerMembers) : PointerWheelMovedHandler (object, PointerWheelMovedArgs) ux

Called when a pointer wheel is moved on a visual.

GlobalKey (attached by Resource) : string ux

The `ux:Global` attribute creates a global resource that is accessible everywhere in UX markup.

Implemented Interfaces

IScriptObject uno

Interface for objects that can have a script engine representation

hide