StackLayout 类

定义

在单个垂直或水平行中定位子元素的 Layout<T>

public class StackLayout : Xamarin.Forms.Layout<Xamarin.Forms.View>, Xamarin.Forms.IElementConfiguration<Xamarin.Forms.StackLayout>
type StackLayout = class
    inherit Layout<View>
    interface IElementConfiguration<StackLayout>
继承
实现

注解

由于 StackLayout 布局会覆盖其子元素上的边界,因此应用程序开发人员不应在其上设置边界。

以下示例代码改编自 FormsGallery 示例,演示了如何创建包含子级的新 StackLayout 代码,以探索 的许多布局行为 StackLayout

StackLayout stackLayout = new StackLayout
{
    Spacing = 0,
    VerticalOptions = LayoutOptions.FillAndExpand,
    Children = 
    {
        new Label
        {
            Text = "StackLayout",
            HorizontalOptions = LayoutOptions.Start
        },
        new Label
        {
            Text = "stacks its children",
            HorizontalOptions = LayoutOptions.Center
        },
        new Label
        {
            Text = "vertically",
            HorizontalOptions = LayoutOptions.End
        },
        new Label
        {
            Text = "by default,",
            HorizontalOptions = LayoutOptions.Center
        },
        new Label
        {
            Text = "but horizontal placement",
            HorizontalOptions = LayoutOptions.Start
        },
        new Label
        {
            Text = "can be controlled with",
            HorizontalOptions = LayoutOptions.Center
        },
        new Label
        {
            Text = "the HorizontalOptions property.",
            HorizontalOptions = LayoutOptions.End
        },
        new Label
        {
            Text = "An Expand option allows one or more children " +
                   "to occupy the an area within the remaining " +
                   "space of the StackLayout after it's been sized " +
                   "to the height of its parent.",
            VerticalOptions = LayoutOptions.CenterAndExpand,
            HorizontalOptions = LayoutOptions.End
        },
        new StackLayout
        {
            Spacing = 0,
            Orientation = StackOrientation.Horizontal,
            Children = 
            {
                new Label
                {
                    Text = "Stacking",
                },
                new Label
                {
                    Text = "can also be",
                    HorizontalOptions = LayoutOptions.CenterAndExpand
                },
                new Label
                {
                    Text = "horizontal.",
                },
            }
        }
    }
};

构造函数

StackLayout()

初始化 StackLayout 类的新实例。

字段

OrientationProperty

标识 Orientation 可绑定属性。

SpacingProperty

标识 Spacing 可绑定元素。

属性

AnchorX

获取或设置任何转换的中心点的 X 部分,相对于元素的边界。 这是一种可绑定属性。

(继承自 VisualElement)
AnchorY

获取或设置任何转换的中心点的 Y 部分,相对于元素的边界。 这是一种可绑定属性。

(继承自 VisualElement)
AutomationId

获取或设置允许自动化框架查找此元素并与其交互的值。

(继承自 Element)
Background

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
BackgroundColor

获取或设置将填充 VisualElement 背景的颜色。 这是一种可绑定属性。

(继承自 VisualElement)
Batched

供 Xamarin.Forms 平台内部使用。

(继承自 VisualElement)
Behaviors

获取与此元素关联的 Behavior 列表。 这是一种可绑定属性。

(继承自 VisualElement)
BindingContext

获取或设置对象,该对象包含将被属于此 BindableObject 的绑定属性设定为目标的属性。

(继承自 BindableObject)
Bounds

获取元素的边界。

(继承自 VisualElement)
CascadeInputTransparent

获取或设置一个值,该值控制子元素在透明度为 true 时是否继承 this 布局的输入透明度。

(继承自 Layout)
Children

获取该布局的子元素的 IList<View>。

(继承自 Layout<T>)
class

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
ClassId

获取或设置用于标识语义相似元素集合的值。

(继承自 Element)
Clip

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
DisableLayout

供 Xamarin.Forms 平台内部使用。

(继承自 VisualElement)
Dispatcher

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 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

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
NavigationProxy

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
Opacity

获取或设置呈现元素时应用于元素的不透明度值。 这是一种可绑定属性。

(继承自 VisualElement)
Orientation

获取或设置指示子元素的定位方向的值。

Padding

获取或设置布局的内部填充。

(继承自 Layout)
Parent

获取或设置元素的父元素。

(继承自 Element)
ParentView
已过时.

获取作为 VisualElement 的此元素的最近的上级元素。

(继承自 Element)
Platform
已过时.

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 Element)
RealParent

供 Xamarin.Forms 平台内部使用。

(继承自 Element)
Resources

获取或设置本地资源字典。

(继承自 VisualElement)
Rotation

获取或设置呈现元素时围绕 Z 轴(仿射旋转)的旋转角度(以度为单位)。

(继承自 VisualElement)
RotationX

获取或设置呈现元素时围绕 X 轴(透视旋转)的旋转角度(以度为单位)。

(继承自 VisualElement)
RotationY

获取或设置呈现元素时围绕 Y 轴(透视旋转)的旋转角度(以度为单位)。

(继承自 VisualElement)
Scale

获取或设置应用于元素的比例因子。

(继承自 VisualElement)
ScaleX

获取或设置要应用于 X 方向的缩放值。

(继承自 VisualElement)
ScaleY

获取或设置要应用于 Y 方向的缩放值。

(继承自 VisualElement)
Spacing

获取或设置指示子元素之间的间隔量的值。

Style

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
StyleClass

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
StyleId

获取或设置用于唯一地标识元素的用户定义的值。

(继承自 Element)
TabIndex

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
TranslationX

获取或设置元素的 X 转换增量。

(继承自 VisualElement)
TranslationY

获取或设置元素的 Y 转换增量。

(继承自 VisualElement)
Triggers

获取与此元素关联的 Trigger 列表。 这是一种可绑定属性。

(继承自 VisualElement)
VerticalOptions

获取或设置 LayoutOptions,它定义元素在布局周期中的布局方式。 这是一种可绑定属性。

(继承自 View)
Visual

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
Width

获取此元素的当前呈现宽度。 这是一种只读可绑定属性。

(继承自 VisualElement)
WidthRequest

获取或设置此元素的所需宽度替代。

(继承自 VisualElement)
X

获取此元素的当前 X 位置。 这是一种只读可绑定属性。

(继承自 VisualElement)
Y

获取此元素的当前 Y 位置。 这是一种只读可绑定属性。

(继承自 VisualElement)

方法

ApplyBindings()

将绑定应用到 BindingContext

(继承自 BindableObject)
BatchBegin()

表示开始对元素属性进行批更改。

(继承自 VisualElement)
BatchCommit()

表示元素命令批处理结束,且现在应提交命令。

(继承自 VisualElement)
ChangeVisualState()

供 Xamarin.Forms 平台内部使用。

(继承自 VisualElement)
ClearValue(BindableProperty)

清除由 SetValueproperty 设置的任何值。

(继承自 BindableObject)
ClearValue(BindablePropertyKey)

清除由 SetValuepropertyKey 标识的属性设置的任何值。

(继承自 BindableObject)
CoerceValue(BindableProperty)

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 BindableObject)
CoerceValue(BindablePropertyKey)

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 BindableObject)
Descendants()

供 Xamarin.Forms 平台内部使用。

(继承自 Element)
EffectIsAttached(String)

供 Xamarin.Forms 平台内部使用。

(继承自 Element)
FindByName(String)

返回具有指定名称的元素。

(继承自 Element)
Focus()

尝试将焦点设定到此元素上。

(继承自 VisualElement)
ForceLayout()

强制元素及其所有子代的布局循环。

(继承自 Layout)
GetChildElements(Point)

返回在指定的 point 下可见的子元素。

(继承自 View)
GetSizeRequest(Double, Double)
已过时.

返回布局的 SizeRequest。 调用此方法开始布局循环的测量过程。

(继承自 Layout)
GetValue(BindableProperty)

返回 BindableProperty 中包含的值。

(继承自 BindableObject)
GetValues(BindableProperty, BindableProperty)
已过时.

供 Xamarin.Forms 平台内部使用。

(继承自 BindableObject)
GetValues(BindableProperty, BindableProperty, BindableProperty)
已过时.

供 Xamarin.Forms 平台内部使用。

(继承自 BindableObject)
InvalidateLayout()

使当前布局无效。

(继承自 Layout)
InvalidateMeasure()

调用此方法以使此 VisualElement 的布局无效。 引发 MeasureInvalidated 事件。

(继承自 VisualElement)
InvalidateMeasureNonVirtual(InvalidationTrigger)

供 Xamarin.Forms 平台内部使用。

(继承自 VisualElement)
IsSet(BindableProperty)

如果目标属性存在并且已设置,则返回 true

(继承自 BindableObject)
Layout(Rectangle)

在布局循环中更新元素的边界。

(继承自 VisualElement)
LayoutChildren(Double, Double, Double, Double)

定位 StackLayout 的子级并调整其大小。

LowerChild(View)

将子级发送到可视堆栈的后面。

(继承自 Layout)
Measure(Double, Double, MeasureFlags)

返回在设备上显示可视元素所需的最小大小。

(继承自 VisualElement)
NativeSizeChanged()

供 Xamarin.Forms 平台内部使用。

(继承自 VisualElement)
On<T>()

返回配置对象,开发人员可使用该对象针对布局调用特定于平台的方法。

OnAdded(T)

向布局添加子级时调用。 实现此方法可为此事件添加类处理。

(继承自 Layout<T>)
OnBindingContextChanged()

每当 View 的绑定上下文发生更改时就会调用。 重写此方法可为此事件添加类处理。

(继承自 View)
OnChildAdded(Element)

应用程序开发者可以重写此方法以在添加子级时进行响应。

(继承自 Layout<T>)
OnChildMeasureInvalidated()

每当布局的子级发出 MeasureInvalidated 时调用。 实现此方法可为此事件添加类处理。

(继承自 Layout)
OnChildMeasureInvalidated(Object, EventArgs)

每当布局的子级发出 MeasureInvalidated 时调用。 实现此方法可为此事件添加类处理。

(继承自 Layout)
OnChildRemoved(Element)
已过时.

应用程序开发者可以重写此方法以在删除子级时进行响应。

(继承自 Layout<T>)
OnChildRemoved(Element, Int32)

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 Layout<T>)
OnChildrenReordered()

即将发出 ChildrenReordered 事件时调用。 实现此方法可为此事件添加类处理。

(继承自 VisualElement)
OnMeasure(Double, Double)

进行布局测量时调用的方法。

(继承自 VisualElement)
OnParentSet()

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 NavigableElement)
OnPropertyChanged(String)

更改绑定属性时调用的方法。

(继承自 Element)
OnPropertyChanging(String)

从子类调用此方法以通知属性将要发生更改。

(继承自 BindableObject)
OnRemoved(T)

从布局中删除子级时调用。 实现此方法可为此事件添加类处理。

(继承自 Layout<T>)
OnSizeAllocated(Double, Double)

在布局循环过程中设置元素的大小时调用此方法。 在发出 SizeChanged 事件之前直接调用此方法。 实现此方法可为此事件添加类处理。

(继承自 Layout)
OnSizeRequest(Double, Double)
已过时.

此方法在对布局循环的测量过程中调用,以获取需要的 StackLayout 大小。

OnTabIndexPropertyChanged(Int32, Int32)

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
OnTabStopPropertyChanged(Boolean, Boolean)

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
RaiseChild(View)

将子级发送到可视堆栈的前面。

(继承自 Layout)
RemoveBinding(BindableProperty)

删除先前设置的绑定。

(继承自 BindableObject)
RemoveDynamicResource(BindableProperty)

移除先前设置的动态资源

(继承自 Element)
ResolveLayoutChanges()

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 Layout)
SetBinding(BindableProperty, BindingBase)

向属性分配绑定。

(继承自 BindableObject)
SetDynamicResource(BindableProperty, String)

将此元素的 BindableProperty 属性设置为通过 DynamicResource 使用提供的键来更新。

(继承自 Element)
SetValue(BindableProperty, Object)

设置指定属性的值。

(继承自 BindableObject)
SetValue(BindablePropertyKey, Object)

设置 propertyKey 的值。

(继承自 BindableObject)
SetValueCore(BindableProperty, Object, SetValueFlags)

供 Xamarin.Forms 平台内部使用。

(继承自 BindableObject)
SetValueFromRenderer(BindableProperty, Object)

供 Xamarin.Forms 平台内部使用。

(继承自 Element)
SetValueFromRenderer(BindablePropertyKey, Object)

供 Xamarin.Forms 平台内部使用。

(继承自 Element)
ShouldInvalidateOnChildAdded(View)

实现后,如果 child 应调用 InvalidateMeasure(),则返回 true,如果不应调用,则返回 false

(继承自 Layout)
ShouldInvalidateOnChildRemoved(View)

实现后,如果 child 在删除时应调用 InvalidateMeasure(),则返回 true,如果不应调用,则返回 false

(继承自 Layout)
SizeAllocated(Double, Double)

在布局循环过程中调用 SizeAllocated 以指示子树布局的开始。

(继承自 VisualElement)
TabIndexDefaultValueCreator()

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
TabStopDefaultValueCreator()

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 VisualElement)
UnapplyBindings()

不应用所有以前设置的绑定。

(继承自 BindableObject)
Unfocus()

取消设置此元素的焦点。

(继承自 VisualElement)
UpdateChildrenLayout()

指示布局以对其所有子级进行重新布局。

(继承自 Layout)

事件

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
已过时.

在单个垂直或水平行中定位子元素的 Layout<T>

(继承自 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)

扩展方法

AbortAnimation(IAnimatable, String)

停止动画。

Animate(IAnimatable, String, Action<Double>, Double, Double, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

设置指定参数并启动动画。

Animate(IAnimatable, String, Action<Double>, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

设置指定参数并启动动画。

Animate(IAnimatable, String, Animation, UInt32, UInt32, Easing, Action<Double,Boolean>, Func<Boolean>)

设置指定参数并启动动画。

Animate<T>(IAnimatable, String, Func<Double,T>, Action<T>, UInt32, UInt32, Easing, Action<T,Boolean>, Func<Boolean>)

设置指定参数并启动动画。

AnimateKinetic(IAnimatable, String, Func<Double,Double,Boolean>, Double, Double, Action)

设置指定参数并启动动态动画。

AnimationIsRunning(IAnimatable, String)

返回一个布尔值,该值指示 handle 指定的动画是否正在运行。

Batch(IAnimatable)

在单个垂直或水平行中定位子元素的 Layout<T>

GetPropertyIfSet<T>(BindableObject, BindableProperty, T)

在单个垂直或水平行中定位子元素的 Layout<T>

SetAppThemeColor(BindableObject, BindableProperty, Color, Color)

在单个垂直或水平行中定位子元素的 Layout<T>

SetBinding(BindableObject, BindableProperty, String, BindingMode, IValueConverter, String)

创建绑定并将其应用到属性。

SetBinding<TSource>(BindableObject, BindableProperty, Expression<Func<TSource,Object>>, BindingMode, IValueConverter, String)
已过时.

通过表达式创建并应用绑定。

SetOnAppTheme<T>(BindableObject, BindableProperty, T, T)

在单个垂直或水平行中定位子元素的 Layout<T>

FindByName<T>(Element, String)

返回包含 element 的作用域中名称为 name 的类型 T 的实例。

FindNextElement(ITabStopElement, Boolean, IDictionary<Int32,List<ITabStopElement>>, Int32)

在单个垂直或水平行中定位子元素的 Layout<T>

GetSortedTabIndexesOnParentPage(VisualElement)

在单个垂直或水平行中定位子元素的 Layout<T>

GetTabIndexesOnParentPage(ITabStopElement, Int32)

在单个垂直或水平行中定位子元素的 Layout<T>

FadeTo(VisualElement, Double, UInt32, Easing)

返回一个任务,它执行 opacitylengtheasing 参数描述的淡化。

LayoutTo(VisualElement, Rectangle, UInt32, Easing)

返回一个任务,它将 view 指定的 VisualElement 的边界简化为 bounds 参数指定的矩形。

RelRotateTo(VisualElement, Double, UInt32, Easing)

从当前旋转将 view 指定的 VisualElement 旋转为 drotation

RelScaleTo(VisualElement, Double, UInt32, Easing)

返回一个任务,它将 view 指定的 VisualElement 从其当前比例缩放到 dscale

RotateTo(VisualElement, Double, UInt32, Easing)

返回一个任务,它执行 rotationlengtheasing 参数描述的旋转。

RotateXTo(VisualElement, Double, UInt32, Easing)

返回将 Y 轴倾斜 opacity 的任务,花费时间 length 并使用 easing

RotateYTo(VisualElement, Double, UInt32, Easing)

返回将 X 轴倾斜 opacity 的任务,花费时间 length 并使用 easing

ScaleTo(VisualElement, Double, UInt32, Easing)

返回一个任务,它将 view 指定的 VisualElement 缩放到绝对比例因子 scale

ScaleXTo(VisualElement, Double, UInt32, Easing)

在单个垂直或水平行中定位子元素的 Layout<T>

ScaleYTo(VisualElement, Double, UInt32, Easing)

在单个垂直或水平行中定位子元素的 Layout<T>

TranslateTo(VisualElement, Double, Double, UInt32, Easing)

将元素 TranslationX 和 TranslationY 属性从其当前值动画处理为新的值。 这可确保输入布局与视觉对象布局处于同一位置。

HasVisualStateGroups(VisualElement)

如果 element 具有与之关联的一个或多个可视状态组,则返回 true。 否则返回 false

适用于