.NET Multi-platform App UI (.NET MAUI) 布局类允许在应用程序中排列 UI 控件并对其进行分组。 选择布局类需要了解布局如何定位其子元素,以及布局如何调整其子元素的大小。 此外,可能还需要嵌套布局来创建所需的布局。
在水平或垂直方向上组织一维堆栈中的元素。 该 属性指定元素的方向,默认方向为 。 通常用于在页面上排列 UI 的子部分。
以下 XAML 演示如何创建包含三个 对象的垂直 :
在 中,如果未显式设置某元素的大小,则该元素将展开以填充可用宽度,如果 属性设置为 ,则填充可用高度。
通常用作包含其他子布局的父布局。 但是,不应使用 通过 对象的组合来重现 布局。 以下代码显示了此错误做法的示例:
这比较浪费,因为会执行不需要的布局计算。 相反,可用通过使用 更好地实现所需的布局。
有关详细信息,请参阅 StackLayout。
在一维水平堆栈中组织子视图,是相较于 性能更高的替代方法。 通常用于在页面上排列 UI 的子部分。
以下 XAML 演示如何创建包含不同子视图的 :
在 中,如果未显式设置某元素的大小,则该元素会展开以填充可用高度。
有关详细信息,请参阅 HorizontalStackLayout。
在一维垂直堆栈中组织子视图,是比 性能更高的替代方案。 通常用于在页面上排列 UI 的子部分。
以下 XAML 演示如何创建包含三个 对象的 :
在 中,如果未显式设置某元素的大小,则该元素会展开以填充可用宽度。
有关详细信息,请参阅 VerticalStackLayout。
用于显示行和列中的元素,这些元素可以有比例大小或绝对大小。 可使用 和 属性指定网格的行和列。
要定位特定 单元格中的元素,请使用 和 附加属性。 要使元素跨多个行和列,请使用 和 附加属性。
以下 XAML 演示如何创建包含两行两列的 :
在此示例中,大小调整的工作原理如下:
- 每行的显式高度为 50 个独立于设备的单位。
- 第一列的宽度设置为 ,因此满足其子列所需的宽度。 在本例中,其宽度为 200 个与设备无关的单位以满足第一个 的宽度。
可以使用自动调整大小在列或行中分配空间,从而使列和行的大小适合其内容。 可通过将 的高度或 的宽度设置为 来达成此目的。 按比例调整大小还可以用于按加权比例在网格的行和列之间分配可用空间。 可以通过将 的高度或 的宽度设置为使用 运算符的值来达成此目的。
有关详细信息,请参阅网格。
类似于 ,它在堆栈中水平或垂直显示子元素。 但是,如果单个行或列中容纳太多元素,则 也可以换行其子元素,并且还可以更精细地控制其子元素的大小、方向和对齐方式。
以下 XAML 演示如何创建在单个列中显示其视图的 :
在此示例中,布局的工作方式如下:
- 属性设置为 ,这将导致 的子项排列在单列项中。
- 属性设置为 ,这将使每个项水平居中。
- 属性设置为 ,这将在所有项之间、第一个项上方和最后一个项下方平均分配所有剩余的垂直空间。
有关详细信息,请参阅 FlexLayout。
用于使用显式值或相对于布局大小的值来定位元素和调整元素大小。 位置由子级的左上角相对于 的左上角指定。
应视为特殊用途的布局,仅在你可以设置子级的大小或元素的大小不影响其他子级的位置时使用。 此布局的标准用法是创建覆盖层,该覆盖层使用其他控件覆盖页面,可能是为了防止用户与页面上的常规控件交互。
在 中, 附加的属性用于指定元素的水平位置、垂直位置、宽度和高度。 此外, 附加属性指定了如何解释布局边界。
以下 XAML 显示如何在 中排列元素:
在此示例中,布局的工作方式如下:
- 每个 都具有 100x100 的显式大小,并显示在相同的位置(水平居中)。
- 红色 旋转 30 度,绿色 旋转 60 度。
- 在每个 上, 附加属性设置为 ,表示该位置与考虑宽度和高度后的剩余空间成正比。
有关详细信息,请参阅 AbsoluteLayout。
允许从 类派生的任何布局类通过绑定到项集合来生成其内容,并可选择使用 设置每个项的外观。
通过将可绑定布局的 属性设置为实现 的任何集合,并将其附加到 派生的类,可用数据填充可绑定布局。 通过将 附加属性设置为 ,可以定义可绑定布局中每个项的外观。
下面的 XAML 显示如何将 绑定到项集合,并使用 定义它们的外观:
仅当要显示的项集合较小且不需要滚动和选择时,才应使用可绑定布局。
有关详细信息,请参阅 BindableLayout。
在 .NET MAUI 中,布局类派生自抽象 类。 此类将跨平台布局和度量委托给布局管理器类。 每个布局管理器类实现 接口,该接口指定 必须提供该接口和 实现:
- 实现 调用 布局中的每个视图,并返回给定约束的布局的总大小。
- 实现 确定每个视图应放置在布局边界内的位置,并调用 每个视图及其相应的边界。 返回值是布局的实际大小。
.NET MAUI 的布局具有预定义的布局管理器来处理其布局。 但是,有时必须使用 .NET MAUI 不提供的布局来组织页面内容。 这可以通过编写自己的自定义布局来实现。 有关详细信息,请参阅 自定义布局。
每个可视元素都有一个 可绑定属性,用于定义元素是否可以接收输入。 它的默认值是 ,确保元素可以接收输入。 当元素上的此属性为 时,该元素将不会接收任何输入。 相反,输入将传递给元素后面可见的任何元素。
所有布局都从 类派生,它有一个 可绑定属性,用于控制子元素是否继承布局的输入透明度。 其默认值为 ,确保在布局类上将 属性设置为 将导致布局中的所有元素不接收任何输入。
到此这篇grid布局阮一峰(grid布局是什么)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/rfx/22352.html