Xamarin.Forms 布局

Xamarin.Forms 布局用于将用户界面控件组合到视觉结构中。

Xamarin.Forms 中的 LayoutLayout<T> 类是视图的专门子类型,充当视图和其他布局的容器。 Layout 类派生自 ViewLayout 派生通常包含用于设置 Xamarin.Forms 应用程序中子元素的位置和大小的逻辑。

Xamarin.Forms 布局类型

派生自 Layout 的类可以分为两个类别:

具有单一内容的布局

这些类派生自 Layout,定义 PaddingIsClippedToBounds 属性:

类型 描述 外观
ContentView ContentView 包含使用 Content 属性设置的单个子元素。 Content 属性可以设置为任何 View 派生,包括其他 Layout 派生。 ContentView 主要用于结构元素,用作 Frame 的基类。

API 文档 / 指南
ContentView 示例
此页的 C# 代码 / XAML 页
Frame Frame 类派生自 ContentView,并在其子元素周围显示边框或框架。 Frame 类的默认 Padding 值为 20,还定义 BorderColorCornerRadiusHasShadow 属性。

API 文档 / 指南
框架示例
此页的 C# 代码 / XAML 页
ScrollView ScrollView 能够滚动其内容。 将 Content 属性设置为过大而无法适应屏幕的视图或布局。 (ScrollView 的内容通常是 StackLayout。)设置 Orientation 属性,以指示滚动是否应为垂直、水平或两者皆是。

API 文档 / 指南
ScrollView 示例
此页的 C# 代码 / XAML 页
TemplatedView TemplatedView 显示带有控件模板的内容,并且是 ContentView 的基类。

API 文档 / 指南
TemplatedView 示例
ContentPresenter ContentPresenter 是模板化视图的布局管理器,在 ControlTemplate 中用于标记要呈现的内容出现的位置。

API 文档 / 指南
ContentPresenter 示例

具有多个子元素的布局

这些类派生自 Layout<View>

类型 描述 外观
StackLayout StackLayout 根据 Orientation 属性水平或垂直放置堆栈中的子元素。 Spacing 属性控制子元素之间的间距,默认值为 6。

API 文档 / 指南
StackLayout 示例
此页的 C# 代码 / XAML 页
Grid Grid 将其子元素放置在行和列网格中。 使用附加属性RowColumnRowSpanColumnSpan 指定子元素的位置。

API 文档 / 指南
网格示例
此页的 C# 代码 / XAML 页
AbsoluteLayout AbsoluteLayout 将子元素放置在相对于其父元素的特定位置。 使用附加属性LayoutBoundsLayoutFlags 指定子元素的位置。 AbsoluteLayout 对于对视图位置进行动画处理很有用。

API 文档 / 指南
AbsoluteLayout 示例
此页的 C# 代码 / XAML 页带有代码隐藏
RelativeLayout RelativeLayout 相对于 RelativeLayout 本身或同级元素定位子元素。 使用设置为 ConstraintBoundsConstraint 类型对象的附加属性来指示子元素位置。

API 文档 / 指南
RelativeLayout 示例
此页的 C# 代码 / XAML 页
FlexLayout FlexLayout 基于 CSS 灵活框布局模块,通常称为“灵活布局”或“灵活框”FlexLayout 定义了六个可绑定属性和五个附加的可绑定属性,允许子元素通过多个对齐和方向选项进行堆叠或包装。

API 文档 / 指南
FlexLayout 示例
此页的 C# 代码 / XAML 页