AbsoluteLayout 类
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
将子元素放在绝对位置。
public ref class AbsoluteLayout : Microsoft::Maui::Controls::Layout, Microsoft::Maui::IAbsoluteLayout, System::Collections::Generic::ICollection<Microsoft::Maui::IView ^>, System::Collections::Generic::IEnumerable<Microsoft::Maui::IView ^>, System::Collections::Generic::IList<Microsoft::Maui::IView ^>
public class AbsoluteLayout : Microsoft.Maui.Controls.Layout, Microsoft.Maui.IAbsoluteLayout, System.Collections.Generic.ICollection<Microsoft.Maui.IView>, System.Collections.Generic.IEnumerable<Microsoft.Maui.IView>, System.Collections.Generic.IList<Microsoft.Maui.IView>
type AbsoluteLayout = class
inherit Layout
interface IAbsoluteLayout
interface ILayout
interface IView
interface IElement
interface ITransform
interface IContainer
interface IList<IView>
interface ICollection<IView>
interface seq<IView>
interface IEnumerable
interface ISafeAreaView
interface IPadding
interface ICrossPlatformLayout
Public Class AbsoluteLayout
Inherits Layout
Implements IAbsoluteLayout, ICollection(Of IView), IEnumerable(Of IView), IList(Of IView)
- 继承
- 继承
-
AbsoluteLayout
- 实现
注解
应用程序开发人员可以通过提供比例坐标、设备坐标或两者的组合来控制子元素的位置,具体取决于 AbsoluteLayoutFlags 传递给 SetLayoutFlags(BindableObject, AbsoluteLayoutFlags) 方法的值。 提供一个比例 AbsoluteLayoutFlags 枚举值时,介于 0.0 和 1.0 之间的相应 X 或 Y 参数将始终导致子级完全在屏幕上显示。 也就是说,无需减去或添加子级的高度或宽度,才能显示其与左侧、右侧、顶部或底部 AbsoluteLayout的刷新。 对于未按比例指定的宽度、高度、X 或 Y 值,应用程序开发人员使用设备相关单元来查找和调整子元素的大小。
以下示例演示如何使用 AbsoluteLayout 带比例位置参数的函数。
Label header = new Label
{
Text = "AbsoluteLayout Demo",
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label)),
HorizontalOptions = LayoutOptions.Center
};
AbsoluteLayout simpleLayout = new AbsoluteLayout
{
BackgroundColor = Color.Blue.WithLuminosity(0.9),
VerticalOptions = LayoutOptions.FillAndExpand
};
topLeftLabel = new Label
{
Text = "Top Left",
TextColor = Color.Black
};
centerLabel = new Label
{
Text = "Centered",
TextColor = Color.Black
};
bottomRightLabel = new Label
{
Text = "Bottom Right",
TextColor = Color.Black
};
// PositionProportional flag maps the range (0.0, 1.0) to
// the range "flush [left|top]" to "flush [right|bottom]"
AbsoluteLayout.SetLayoutFlags(bottomRightLabel,
AbsoluteLayoutFlags.PositionProportional);
AbsoluteLayout.SetLayoutBounds(topLeftLabel,
new Rectangle(0f,
0f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
AbsoluteLayout.SetLayoutFlags(centerLabel,
AbsoluteLayoutFlags.PositionProportional);
AbsoluteLayout.SetLayoutBounds(centerLabel,
new Rectangle(0.5,
0.5, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
AbsoluteLayout.SetLayoutFlags(bottomRightLabel,
AbsoluteLayoutFlags.PositionProportional);
AbsoluteLayout.SetLayoutBounds(bottomRightLabel,
new Rectangle(1f,
1f, AbsoluteLayout.AutoSize, AbsoluteLayout.AutoSize));
simpleLayout.Children.Add(topLeftLabel);
simpleLayout.Children.Add(centerLabel);
simpleLayout.Children.Add(bottomRightLabel);
下面的代码示例演示如何通过指定设备依赖单元来放置两个标签。
AbsoluteLayout simpleLayout = new AbsoluteLayout
{
BackgroundColor = Color.Blue.WithLuminosity(0.9),
VerticalOptions = LayoutOptions.FillAndExpand
};
Label header = new Label
{
Text = "Device Units Demo",
TextColor = Color.Black,
FontSize = Device.GetNamedSize(NamedSize.Large, typeof(Label))
};
topLeftText = new Label
{
Text = "Left",
TextColor = Color.Black
};
AbsoluteLayout.SetLayoutFlags(topLeftText,
AbsoluteLayoutFlags.None);
AbsoluteLayout.SetLayoutBounds(topLeftText,
new Rectangle(0f, 0f, 100f, 50f));
middleText = new Label
{
Text = "Device-dependent location",
TextColor = Color.Black
};
AbsoluteLayout.SetLayoutFlags(middleText,
AbsoluteLayoutFlags.None);
AbsoluteLayout.SetLayoutBounds(middleText,
new Rectangle(100f, 200f, 200f, 50f));
simpleLayout.Children.Add(topLeftText);
simpleLayout.Children.Add(middleText);
}
适用于 Microsoft.Maui.Controls 的 XAML 支持类 AbsoluteLayout 的以下附加属性:
附加属性 | 值 |
---|---|
AbsoluteLayout.LayoutBounds | 逗号分隔的列表(可能带有空格)包含四个值,用于指定边界矩形的位置和尺寸。 列表中的前两个值必须表示数字。 后两个值可以是数字,也可以是字符串“AutoSize”。 |
AbsoluteLayout.LayoutFlags | AbsoluteLayoutFlags枚举值名称: |
应用程序开发人员可以使用 XAML 为类布局元素 AbsoluteLayout 。 以下示例将蓝色 BoxView 置于以下位置 AbsoluteLayout:
<AbsoluteLayout VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand">
<BoxView AbsoluteLayout.LayoutBounds="0.25, 0.25, 0.5, 0.5"
Color="Blue"
AbsoluteLayout.LayoutFlags="All" />
</AbsoluteLayout>
该 AbsoluteLayout 类可以按比例单位、设备单元或两者的组合来放置其子元素。 应用程序开发人员在指定 Rectangle 将定义子元素的布局边界的结构时,应记住以下几点:
- 对于高度和宽度适合在屏幕上的元素,范围 [0,1] 中的比例位置尺寸表示完全在屏幕上的元素,无论高度、宽度还是两者都在设备或成比例单位中指定。
- 上述点表示,若要在屏幕右下角指定元素,其宽度为一半,与屏幕相同,其AbsoluteLayoutFlags值为
All
,应用程序开发人员将指定“1.0、1.0、0.5、0.5”。 - 应用开发人员可能会无意中导致一个或两个大小维度按比例指定为部分显示在屏幕之外或完全隐藏的子元素,方法是指定设备单元位置,这些位置没有为子项的计算大小留出足够的空间。
- 边界 Rectangle 结构的每个部分都根据 AbsoluteLayoutFlags 控制它的值进行解释。 例如,给定矩形可能具有设备单位中的 X 坐标、按比例单位表示的 Y 坐标、按比例单位表示的高度以及设备单位的宽度,或者设备单位和成比例单位的任何其他组合。 :
- 使用子级上当前 AbsoluteLayoutFlags 集进行解释的矩形表示部分或完全脱离屏幕的边界框(例如,具有大于屏幕宽度的宽度)可能会带来意外的结果:
构造函数
AbsoluteLayout() |
将子元素放在绝对位置。 |
字段
_layoutManager |
将子元素放在绝对位置。 (继承自 Layout) |
AutoSize |
指示是否应按子元素的本机大小调整其宽度或高度的值。 |
LayoutBoundsProperty |
附加属性的可绑定属性 |
LayoutFlagsProperty |
附加属性的可绑定属性 |
propertyMapper |
表示视图的内部 PropertyMapper。 (继承自 View) |
transientNamescope |
将子元素放在绝对位置。 (继承自 Element) |
属性
AnchorX |
获取或设置任何转换操作的中心点的 X 组件,相对于元素的边界。 这是一种可绑定属性。 (继承自 VisualElement) |
AnchorY |
获取或设置任何转换操作的中心点的 Y 组件,相对于元素的边界。 这是一种可绑定属性。 (继承自 VisualElement) |
AutomationId |
获取或设置允许自动化框架查找此元素并与其交互的值。 (继承自 Element) |
Background |
获取或设置 Brush 将用于填充元素背景的元素。 这是一种可绑定属性。 (继承自 VisualElement) |
BackgroundColor |
获取或设置 Color 将填充元素的背景。 这是一种可绑定属性。 (继承自 VisualElement) |
Batched |
获取一个值,该值指示对此元素进行了批处理更改。 (继承自 VisualElement) |
Behaviors |
获取与此元素关联的对象列表 Behavior 。 这是一种只读可绑定属性。 (继承自 VisualElement) |
BindingContext |
获取或设置一个对象,该对象包含由属于此 BindableObject属性的绑定属性所面向的属性。 这是一种可绑定属性。 (继承自 BindableObject) |
Bounds |
获取与设备无关的单元中元素的边界。 (继承自 VisualElement) |
CascadeInputTransparent |
获取或设置一个值,该值控制子元素在传输时是否继承此布局的 |
Children |
获取此布局中包含的子对象。 (继承自 Layout) |
class |
获取或设置元素的样式类。 (继承自 NavigableElement) |
ClassId |
获取或设置用于标识语义相似元素集合的值。 (继承自 Element) |
Clip |
指定元素的剪辑区域。 这是一种可绑定属性。 (继承自 VisualElement) |
Count |
获取此布局中的子对象计数。 (继承自 Layout) |
DesiredSize |
获取在布局流程的度量传递过程中此元素计算所得的大小。 (继承自 VisualElement) |
DisableLayout |
获取一个值,该值指示此元素的布局已禁用。 (继承自 VisualElement) |
Dispatcher |
获取创建此可绑定对象时可用的调度程序,否则会尝试查找最近的可用调度程序(可能是窗口的/应用)。 (继承自 BindableObject) |
EffectControlProvider |
供 .NET MAUI 内部使用。 (继承自 Element) |
Effects |
获取或设置将在运行时应用于元素的样式和属性。 (继承自 Element) |
FlowDirection |
获取或设置布局流方向。 这是一种可绑定属性。 (继承自 VisualElement) |
Frame |
获取或设置此元素驻留在屏幕上的框架。 (继承自 VisualElement) |
GestureController |
将子元素放在绝对位置。 (继承自 View) |
GestureRecognizers |
与此视图关联的手势识别器的集合。 (继承自 View) |
Handler |
获取或设置与此 IViewHandler 元素关联的项。 (继承自 VisualElement) |
Height |
获取此元素的当前呈现高度。 这是一种只读可绑定属性。 (继承自 VisualElement) |
HeightRequest |
获取或设置此元素的所需高度替代。 这是一种可绑定属性。 (继承自 VisualElement) |
HorizontalOptions |
获取或设置 LayoutOptions 定义元素在布局周期中布局的方式。 这是一种可绑定属性。 (继承自 View) |
Id |
获取一个值,该值可用于在应用程序运行过程中唯一标识元素。 (继承自 Element) |
IgnoreSafeArea |
指定视图内容相对于障碍的定位方式。 如果此值为 |
InputTransparent |
获取或设置一个值,该值指示此元素在用户交互期间是否响应命中测试。 这是一种可绑定属性。 (继承自 VisualElement) |
IsClippedToBounds |
获取或设置一个值,该值确定布局是否应将其子级剪辑到其边界。
默认值为 |
IsEnabled |
获取或设置一个值,该值指示是否在用户界面中启用此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsEnabledCore |
此值表示累积 IsEnabled 值。 重写此属性的所有类型都需要在值更改时调用 RefreshIsEnabledProperty() 方法。 (继承自 VisualElement) |
IsFocused |
获取一个值,该值指示当前是否聚焦此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsInPlatformLayout |
获取或设置一个值,该值指示此元素当前正在经历平台布局周期。 (继承自 VisualElement) |
IsLoaded |
指示元素是否已连接到主对象树。 (继承自 VisualElement) |
IsPlatformEnabled |
获取或设置一个值,该值指示是否启用此元素的平台等效元素。 (继承自 VisualElement) |
IsPlatformStateConsistent |
获取或设置一个值,该值指示此元素当前与平台等效元素状态一致。 (继承自 VisualElement) |
IsReadOnly |
获取此布局是否是只读的。 (继承自 Layout) |
IsVisible |
获取或设置一个值,该值确定此元素在屏幕上是否可见,并在布局中占用空间。 这是一种可绑定属性。 (继承自 VisualElement) |
Item[Int32] |
将子元素放在绝对位置。 (继承自 Layout) |
LogicalChildren |
已过时.
将子元素放在绝对位置。 (继承自 Element) |
Margin |
获取或设置视图的边距。 (继承自 View) |
MaximumHeightRequest |
获取或设置元素在布局期间请求的最大高度。 这是一种可绑定属性。 (继承自 VisualElement) |
MaximumWidthRequest |
获取或设置元素在布局期间请求的最大宽度。 这是一种可绑定属性。 (继承自 VisualElement) |
MinimumHeightRequest |
获取或设置元素在布局期间请求的最小高度。 这是一种可绑定属性。 (继承自 VisualElement) |
MinimumWidthRequest |
获取或设置元素在布局期间请求的最小宽度。 这是一种可绑定属性。 (继承自 VisualElement) |
Navigation |
获取负责处理基于堆栈的导航的对象。 (继承自 NavigableElement) |
NavigationProxy |
获取转换为 Navigation . NavigationProxy. (继承自 NavigableElement) |
Opacity |
获取或设置呈现元素时应用于元素的不透明度值。 此值的范围为 0 到 1;超出此范围的值将设置为最接近的有效值。 这是一种可绑定属性。 (继承自 VisualElement) |
Padding |
获取或设置布局的内部填充。 默认值是 Thickness 设置为 0 的所有值。 (继承自 Layout) |
Parent |
获取或设置此元素的父 Element 级。 (继承自 Element) |
RealParent |
供 .NET MAUI 内部使用。 (继承自 Element) |
Resources |
获取或设置本地资源字典。 (继承自 VisualElement) |
Rotation |
获取或设置呈现元素时围绕 Z 轴(仿射旋转)的旋转角度(以度为单位)。 这是一种可绑定属性。 (继承自 VisualElement) |
RotationX |
获取或设置呈现元素时围绕 X 轴(透视旋转)的旋转角度(以度为单位)。 这是一种可绑定属性。 (继承自 VisualElement) |
RotationY |
获取或设置呈现元素时围绕 Y 轴(透视旋转)的旋转角度(以度为单位)。 这是一种可绑定属性。 (继承自 VisualElement) |
Scale |
获取或设置应用于元素的比例因子。 这是一种可绑定属性。 (继承自 VisualElement) |
ScaleX |
获取或设置要应用于 X 方向的缩放值。 这是一种可绑定属性。 (继承自 VisualElement) |
ScaleY |
获取或设置要应用于 Y 方向的缩放值。 这是一种可绑定属性。 (继承自 VisualElement) |
Shadow |
获取或设置元素强制转换的阴影效果。 这是一种可绑定属性。 (继承自 VisualElement) |
Style |
获取或设置此元素的唯 Style 一值。 (继承自 NavigableElement) |
StyleClass |
获取或设置元素的样式类。 (继承自 NavigableElement) |
StyleId |
获取或设置用于唯一地标识元素的用户定义的值。 (继承自 Element) |
TranslationX |
获取或设置元素的 X 转换增量。 这是一种可绑定属性。 (继承自 VisualElement) |
TranslationY |
获取或设置元素的 Y 转换增量。 这是一种可绑定属性。 (继承自 VisualElement) |
Triggers |
获取与此元素关联的对象列表 TriggerBase 。 这是一种只读可绑定属性。 (继承自 VisualElement) |
VerticalOptions |
获取或设置 LayoutOptions 定义元素在布局周期中布局的方式。 这是一种可绑定属性。 (继承自 View) |
Visual |
获取或设置替代 IVisual 元素的视觉外观的实现。 这是一种可绑定属性。 (继承自 VisualElement) |
Width |
获取此元素的当前宽度。 这是一种只读可绑定属性。 (继承自 VisualElement) |
WidthRequest |
获取或设置此元素的所需宽度替代。 这是一种可绑定属性。 (继承自 VisualElement) |
Window |
Window获取与元素关联的项。 这是一种只读可绑定属性。 (继承自 VisualElement) |
X |
获取此元素的当前 X 位置。 这是一种只读可绑定属性。 (继承自 VisualElement) |
Y |
获取此元素的当前 Y 位置。 这是一种只读可绑定属性。 (继承自 VisualElement) |
ZIndex |
获取或设置布局中元素的前向后 z 索引。 这是一种可绑定属性。 (继承自 VisualElement) |
方法
事件
BatchCommitted |
通过调用 BatchCommit()提交一批属性更改时发生。 (继承自 VisualElement) |
BindingContextChanged |
当 BindingContext 属性的值更改时发生。 (继承自 BindableObject) |
ChildAdded |
每当将子元素添加到元素时引发。 (继承自 Element) |
ChildRemoved |
每当从元素中删除子元素时引发。 (继承自 Element) |
ChildrenReordered |
当此元素的子元素的顺序发生更改时发生。 (继承自 VisualElement) |
DescendantAdded |
每当将子元素添加到元素的子树时引发。 (继承自 Element) |
DescendantRemoved |
每当从元素子树中删除子元素时引发。 (继承自 Element) |
FocusChangeRequested |
已过时.
请求焦点更改时发生。 (继承自 VisualElement) |
Focused |
当此元素处于焦点时发生。 (继承自 VisualElement) |
HandlerChanged |
每当元素的处理程序发生更改时引发。 (继承自 Element) |
HandlerChanging |
每当元素的处理程序开始更改时引发。 (继承自 Element) |
Loaded |
在构造元素并将其添加到平台可视化树时发生。 (继承自 VisualElement) |
MeasureInvalidated |
当元素的当前度量值失效时发生。 (继承自 VisualElement) |
ParentChanged |
每当元素的父级发生更改时引发。 (继承自 Element) |
ParentChanging |
每当元素开始更改时引发。 (继承自 Element) |
PropertyChanged |
在属性值更改时发生。 (继承自 BindableObject) |
PropertyChanging |
在属性值更改时发生。 (继承自 BindableObject) |
SizeChanged |
当元素的大小发生更改时发生。 (继承自 VisualElement) |
Unfocused |
当此元素未聚焦时发生。 (继承自 VisualElement) |
Unloaded |
当元素不再连接到平台可视化树时发生。 (继承自 VisualElement) |