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
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)
- 继承
- 实现
注解
应用程序开发人员可以通过提供比例坐标、设备坐标或两者的组合来控制子元素的位置,具体取决于 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) |
属性
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 |
将子元素放在绝对位置。 (继承自 Layout) |
Children |
供 Microsoft.Maui.Controls 平台内部使用。 (继承自 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 |
将子元素放在绝对位置。 (继承自 Layout) |
InputTransparent |
获取或设置一个值,该值指示此元素是否在用户交互期间响应命中测试。 这是一种可绑定属性。 (继承自 VisualElement) |
IsClippedToBounds |
获取或设置一个值,该值确定布局是否应将其子级剪裁到其边界。 (继承自 Layout) |
IsEnabled |
获取或设置一个值,该值指示是否在用户界面中启用此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsEnabledCore |
此值表示累积 IsEnabled 值。 如果值将更改,重写此属性的所有类型还需要调用 RefreshIsEnabledProperty () 方法。 (继承自 VisualElement) |
IsFocused |
获取一个值,该值指示当前是否聚焦此元素。 这是一种可绑定属性。 (继承自 VisualElement) |
IsInPlatformLayout |
获取或设置一个值,该值指示此元素当前正在经历平台布局周期。 (继承自 VisualElement) |
IsLoaded |
指示元素是否已连接到main对象树。 (继承自 VisualElement) |
IsPlatformEnabled |
获取或设置一个值,该值指示是否启用此元素的平台等效元素。 (继承自 VisualElement) |
IsPlatformStateConsistent |
获取或设置一个值,该值指示此元素当前与平台等效元素状态一致。 (继承自 VisualElement) |
IsReadOnly |
将子元素放在绝对位置。 (继承自 Layout) |
IsVisible |
获取或设置一个值,该值确定此元素是否在屏幕上可见并占用布局中的空间。 这是一种可绑定属性。 (继承自 VisualElement) |
Item[Int32] |
将子元素放在绝对位置。 (继承自 Layout) |
LogicalChildren |
已过时.
供 Microsoft.Maui.Controls 平台内部使用。 (继承自 Element) |
Margin |
获取或设置视图的边距。 (继承自 View) |
MaximumHeightRequest |
获取或设置元素在布局期间将请求的最大高度。 这是一种可绑定属性。 (继承自 VisualElement) |
MaximumWidthRequest |
获取或设置元素在布局期间请求的最大宽度。 这是一种可绑定属性。 (继承自 VisualElement) |
MinimumHeightRequest |
获取或设置元素在布局期间请求的最小高度。 这是一种可绑定属性。 (继承自 VisualElement) |
MinimumWidthRequest |
获取或设置元素在布局期间将请求的最小宽度。 这是一种可绑定属性。 (继承自 VisualElement) |
Navigation |
将子元素放在绝对位置。 (继承自 NavigableElement) |
NavigationProxy |
将子元素放在绝对位置。 (继承自 NavigableElement) |
Opacity |
获取或设置呈现元素时应用于元素的不透明度值。 此值的范围是 0 到 1;超出此范围的值将设置为最接近的有效值。 这是一种可绑定属性。 (继承自 VisualElement) |
Padding |
获取或设置布局的内部填充。 (继承自 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 |
将子元素放在绝对位置。 (继承自 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 |
当元素不再连接到main对象树时发生。 (继承自 VisualElement) |
显式接口实现
扩展方法
适用于
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈