Grid 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
用于按行和列排列视图的布局。
public class Grid : Xamarin.Forms.Layout<Xamarin.Forms.View>, Xamarin.Forms.IElementConfiguration<Xamarin.Forms.Grid>, Xamarin.Forms.IGridController
type Grid = class
inherit Layout<View>
interface IGridController
interface IElementConfiguration<Grid>
- 继承
- 派生
- 实现
注解
以下示例演示了基本用法:
using System;
using Xamarin.Forms;
namespace FormsGallery
{
class GridDemoPage : ContentPage
{
public GridDemoPage()
{
Grid grid = new Grid
{
VerticalOptions = LayoutOptions.FillAndExpand,
RowDefinitions =
{
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = GridLength.Auto },
new RowDefinition { Height = new GridLength(1, GridUnitType.Star) },
new RowDefinition { Height = new GridLength(100, GridUnitType.Absolute) }
},
ColumnDefinitions =
{
new ColumnDefinition { Width = GridLength.Auto },
new ColumnDefinition { Width = new GridLength(1, GridUnitType.Star) },
new ColumnDefinition { Width = new GridLength(100, GridUnitType.Absolute) }
}
};
grid.Children.Add(new Label
{
Text = "Grid",
FontSize = Device.GetNamedSize (NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
}, 0, 3, 0, 1);
grid.Children.Add(new Label
{
Text = "Autosized cell",
TextColor = Color.White,
BackgroundColor = Color.Blue
}, 0, 1);
grid.Children.Add(new BoxView
{
Color = Color.Silver,
HeightRequest = 0
}, 1, 1);
grid.Children.Add(new BoxView
{
Color = Color.Teal
}, 0, 2);
grid.Children.Add(new Label
{
Text = "Leftover space",
TextColor = Color.Purple,
BackgroundColor = Color.Aqua,
HorizontalTextAlignment = TextAlignment.Center,
VerticalTextAlignment = TextAlignment.Center,
}, 1, 2);
grid.Children.Add(new Label
{
Text = "Span two rows (or more if you want)",
TextColor = Color.Yellow,
BackgroundColor = Color.Navy,
HorizontalTextAlignment = TextAlignment.Center,
VerticalTextAlignment = TextAlignment.Center
}, 2, 3, 1, 3);
grid.Children.Add(new Label
{
Text = "Span 2 columns",
TextColor = Color.Blue,
BackgroundColor = Color.Yellow,
HorizontalTextAlignment = TextAlignment.Center,
VerticalTextAlignment = TextAlignment.Center
}, 0, 2, 3, 4);
grid.Children.Add(new Label
{
Text = "Fixed 100x100",
TextColor = Color.Aqua,
BackgroundColor = Color.Red,
HorizontalTextAlignment = TextAlignment.Center,
VerticalTextAlignment = TextAlignment.Center
}, 2, 3);
// Accomodate iPhone status bar.
this.Padding = new Thickness(10, Device.OnPlatform(20, 0, 0), 10, 5);
// Build the page.
this.Content = grid;
}
}
}
下面显示了各种平台上的网格:
布局类可以方便地 Grid 存储其每个子元素的行索引和列索引。 此外,当元素使用网格进行布局时View,应用程序开发人员可以使用 、SetRow(BindableObject, Int32)GetRowSpan(BindableObject)SetRowSpan(BindableObject, Int32)静态方法以及列和列跨度的等效静态方法访问和更改子元素的位置GetRow(BindableObject)和范围。
以下 Grid 成员方法的文档包含 XAML 语法示例:
- SetRow(BindableObject, Int32):
- SetRowSpan(BindableObject, Int32):
- SetColumn(BindableObject, Int32):
- SetColumnSpan(BindableObject, Int32):
构造函数
Grid() |
初始化 Grid 类的新实例。 |
字段
ColumnDefinitionsProperty |
实现 ColumnDefinitions 属性,并允许 Grid 类在运行时将其绑定到其他对象的属性。 |
ColumnProperty |
实现表示子元素的从零开始的列索引的附加属性。 请参阅“备注”。 |
ColumnSpacingProperty |
实现 ColumnSpacing 属性,并允许 Grid 类在运行时将其绑定到其他对象的属性。 |
ColumnSpanProperty |
实现表示子元素跨越的列数的附加属性。 请参阅“备注”。 |
RowDefinitionsProperty |
实现 RowDefinitions 属性,并允许 Grid 类在运行时将其绑定到其他对象的属性。 |
RowProperty |
实现表示子元素的从零开始的行索引的附加属性。 请参阅“备注”。 |
RowSpacingProperty |
实现 RowSpacing 属性,并允许 Grid 类在运行时将其绑定到其他对象的属性。 |
RowSpanProperty |
实现表示子元素跨越的行数的附加属性,并允许 Grid 类在运行时将其绑定到其他对象的属性。 |
属性
AnchorX |
获取或设置任何转换的中心点的 X 部分,相对于元素的边界。 这是一种可绑定属性。 (继承自 VisualElement) |
AnchorY |
获取或设置任何转换的中心点的 Y 部分,相对于元素的边界。 这是一种可绑定属性。 (继承自 VisualElement) |
AutomationId |
获取或设置允许自动化框架查找此元素并与其交互的值。 (继承自 Element) |
Background |
用于按行和列排列视图的布局。 (继承自 VisualElement) |
BackgroundColor |
获取或设置将填充 VisualElement 背景的颜色。 这是一种可绑定属性。 (继承自 VisualElement) |
Batched |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
Behaviors |
获取与此元素关联的 Behavior 列表。 这是一种可绑定属性。 (继承自 VisualElement) |
BindingContext |
获取或设置对象,该对象包含将被属于此 BindableObject 的绑定属性设定为目标的属性。 (继承自 BindableObject) |
Bounds |
获取元素的边界。 (继承自 VisualElement) |
CascadeInputTransparent |
获取或设置一个值,该值控制子元素在透明度为 |
Children |
获取 Grid 的子元素的集合。 |
class |
用于按行和列排列视图的布局。 (继承自 NavigableElement) |
ClassId |
获取或设置用于标识语义相似元素集合的值。 (继承自 Element) |
Clip |
用于按行和列排列视图的布局。 (继承自 VisualElement) |
ColumnDefinitions |
提供绑定属性的接口,该属性获取或设置控制 Grid 中列的布局的 ColumnDefinition 对象的有序集合。 |
ColumnSpacing |
为绑定属性提供接口,该属性获取或设置网格中列之间的距离。 |
DisableLayout |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
Dispatcher |
用于按行和列排列视图的布局。 (继承自 BindableObject) |
EffectControlProvider |
供 Xamarin.Forms 平台内部使用。 (继承自 Element) |
Effects |
应用于此项的效果列表。 (继承自 Element) |
FlowDirection |
获取或设置布局流方向。 (继承自 VisualElement) |
GestureController |
获取视图的手势控制器。 (继承自 View) |
GestureRecognizers |
与此视图关联的手势识别器的集合。 (继承自 View) |
Height |
获取此元素的当前呈现高度。 这是一种只读可绑定属性。 (继承自 VisualElement) |
HeightRequest |
获取或设置此元素的所需高度替代。 (继承自 VisualElement) |
HorizontalOptions |
获取或设置 LayoutOptions,它定义元素在布局周期中的布局方式。 这是一种可绑定属性。 (继承自 View) |
Id |
获取可用于通过运行应用程序唯一地标识元素的值。 (继承自 Element) |
InputTransparent |
获取或设置一个值,该值指示此元素是否应涉及用户交互周期。 这是一种可绑定属性。 (继承自 VisualElement) |
IsClippedToBounds |
获取或设置一个值,该值确定布局是否应将其子级剪裁到其边界。 (继承自 Layout) |
IsEnabled |
获取或设置一个值,该值指示是否在用户界面中启用此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsFocused |
获取一个值,该值指示当前是否聚焦此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsInNativeLayout |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
IsNativeStateConsistent |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
IsPlatformEnabled |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
IsTabStop |
获取或设置指明此元素是否包含在选项卡导航中的值。 这是一种可绑定属性。 (继承自 VisualElement) |
IsVisible |
获取或设置一个值,该值确定此元素是否应属于可视化树的一部分。 这是一种可绑定属性。 (继承自 VisualElement) |
LogicalChildren |
供 Xamarin.Forms 平台内部使用。 (继承自 Element) |
Margin |
获取或设置视图的边距。 (继承自 View) |
MinimumHeightRequest |
获取或设置一个值,该值将替代元素在布局期间请求的最小高度。 (继承自 VisualElement) |
MinimumWidthRequest |
获取或设置一个值,该值将替代元素在布局期间请求的最小宽度。 (继承自 VisualElement) |
Navigation |
用于按行和列排列视图的布局。 (继承自 NavigableElement) |
NavigationProxy |
用于按行和列排列视图的布局。 (继承自 NavigableElement) |
Opacity |
获取或设置呈现元素时应用于元素的不透明度值。 这是一种可绑定属性。 (继承自 VisualElement) |
Padding |
获取或设置布局的内部填充。 (继承自 Layout) |
Parent |
获取或设置元素的父元素。 (继承自 Element) |
ParentView |
已过时.
获取作为 VisualElement 的此元素的最近的上级元素。 (继承自 Element) |
Platform |
已过时.
用于按行和列排列视图的布局。 (继承自 Element) |
RealParent |
供 Xamarin.Forms 平台内部使用。 (继承自 Element) |
Resources |
获取或设置本地资源字典。 (继承自 VisualElement) |
Rotation |
获取或设置呈现元素时围绕 Z 轴(仿射旋转)的旋转角度(以度为单位)。 (继承自 VisualElement) |
RotationX |
获取或设置呈现元素时围绕 X 轴(透视旋转)的旋转角度(以度为单位)。 (继承自 VisualElement) |
RotationY |
获取或设置呈现元素时围绕 Y 轴(透视旋转)的旋转角度(以度为单位)。 (继承自 VisualElement) |
RowDefinitions |
提供绑定属性的接口,该属性获取或设置控制每行高度的 RowDefinition 对象的集合。 |
RowSpacing |
获取或设置网格中行之间的剩余空间量。 这是一种可绑定属性。 |
Scale |
获取或设置应用于元素的比例因子。 (继承自 VisualElement) |
ScaleX |
获取或设置要应用于 X 方向的缩放值。 (继承自 VisualElement) |
ScaleY |
获取或设置要应用于 Y 方向的缩放值。 (继承自 VisualElement) |
Style |
用于按行和列排列视图的布局。 (继承自 NavigableElement) |
StyleClass |
用于按行和列排列视图的布局。 (继承自 NavigableElement) |
StyleId |
获取或设置用于唯一地标识元素的用户定义的值。 (继承自 Element) |
TabIndex |
用于按行和列排列视图的布局。 (继承自 VisualElement) |
TranslationX |
获取或设置元素的 X 转换增量。 (继承自 VisualElement) |
TranslationY |
获取或设置元素的 Y 转换增量。 (继承自 VisualElement) |
Triggers |
获取与此元素关联的 Trigger 列表。 这是一种可绑定属性。 (继承自 VisualElement) |
VerticalOptions |
获取或设置 LayoutOptions,它定义元素在布局周期中的布局方式。 这是一种可绑定属性。 (继承自 View) |
Visual |
用于按行和列排列视图的布局。 (继承自 VisualElement) |
Width |
获取此元素的当前呈现宽度。 这是一种只读可绑定属性。 (继承自 VisualElement) |
WidthRequest |
获取或设置此元素的所需宽度替代。 (继承自 VisualElement) |
X |
获取此元素的当前 X 位置。 这是一种只读可绑定属性。 (继承自 VisualElement) |
Y |
获取此元素的当前 Y 位置。 这是一种只读可绑定属性。 (继承自 VisualElement) |
方法
事件
BatchCommitted |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
BindingContextChanged |
只要 BindingContext 属性更改就会引发。 (继承自 BindableObject) |
ChildAdded |
每当将子元素添加到元素时就会发生。 (继承自 Element) |
ChildRemoved |
每当从元素中删除子元素时就会发生。 (继承自 Element) |
ChildrenReordered |
重新排序 VisualElement 的子级时发生。 (继承自 VisualElement) |
DescendantAdded |
每当将子元素添加到元素子树时就会发生。 (继承自 Element) |
DescendantRemoved |
每当从元素子树中删除子元素时就会发生。 (继承自 Element) |
FocusChangeRequested |
供 Xamarin.Forms 平台内部使用。 (继承自 VisualElement) |
Focused |
元素接收焦点时发生。 (继承自 VisualElement) |
LayoutChanged |
如果任何子元素的 Bounds 已更改,则在布局循环结束时发生。 (继承自 Layout) |
MeasureInvalidated |
可视元素的布局无效时引发的事件。 (继承自 VisualElement) |
PlatformSet |
已过时.
用于按行和列排列视图的布局。 (继承自 Element) |
PropertyChanged |
在属性已更改时引发。 (继承自 BindableObject) |
PropertyChanging |
在属性将要更改时引发。 (继承自 BindableObject) |
SizeChanged |
当此元素上的 Width 或 Height 属性的值发生更改时发生。 (继承自 VisualElement) |
Unfocused |
当元素丢失焦点时发生。 (继承自 VisualElement) |
显式接口实现
IDynamicResourceHandler.SetDynamicResource(BindableProperty, String) |
供 Xamarin.Forms 平台内部使用。 (继承自 BindableObject) |
IElementController.SetValueFromRenderer(BindableProperty, Object) |
供 Xamarin.Forms 平台内部使用。 (继承自 Element) |
IGestureController.CompositeGestureRecognizers |
供 Xamarin.Forms 平台内部使用。 (继承自 View) |
INameScope.RegisterName(String, Object) |
仅限内部使用。 (继承自 Element) |
IVisualElementController.EffectiveFlowDirection |
获取平台上元素的有效可视流方向,考虑区域设置和逻辑流设置。 (继承自 VisualElement) |
IVisualElementController.InvalidateMeasure(InvalidationTrigger) |
此方法仅供内部使用。 (继承自 VisualElement) |