Поделиться через


Расширения AbsoluteLayout

Расширения AbsoluteLayout предоставляют ряд методов расширения, поддерживающих размещение Views в AbsoluteLayouts.

Расширения предлагают следующие методы:

LayoutBounds

Метод LayoutBounds расширения позволяет задать позицию и размер объекта View в объекте AbsoluteLayout. Дополнительные сведения см. в документации Майкрософт.

LayoutFlags

Метод LayoutFlags расширения позволяет задать флаг, указывающий, что значения положения и размера макета для дочернего элемента пропорциональны размеру AbsoluteLayout. Дополнительные сведения см. в документации Майкрософт.

Синтаксис

Обратите внимание, что оба метода LayoutBounds и LayoutFlags могут использоваться в сочетании, чтобы определить, является ли позиция и размер View абсолютной или пропорциональной.

using CommunityToolkit.Maui.Markup;
using Microsoft.Maui.Layouts;

public class AbsoluteLayoutSamplePage : ContentPage
{
    public AbsoluteLayoutSamplePage()
    {
        Content = new AbsoluteLayout
        {
            Children =
            {
                new BoxView
                {
                    Color = Colors.Blue,
                }.LayoutFlags(AbsoluteLayoutFlags.PositionProportional)
                 .LayoutBounds(0.5, 0, 100, 25),

                new BoxView
                {
                    Color = Colors.Green,
                    WidthRequest = 25,
                    HeightRequest = 100,
                }.LayoutFlags(AbsoluteLayoutFlags.PositionProportional)
                 .LayoutBounds(0, 0.5),

                new BoxView
                {
                    Color = Colors.Pink,
                }.LayoutFlags(AbsoluteLayoutFlags.PositionProportional, AbsoluteLayoutFlags.SizeProportional)
                 .LayoutBounds(0, 0.5, 0.25, 0.25),

                new BoxView
                {
                    Color = Colors.Red,
                    WidthRequest = 25,
                    HeightRequest = 100,
                }.LayoutFlags(AbsoluteLayoutFlags.PositionProportional)
                 .LayoutBounds(new Point(1, 0.5)),

                new BoxView
                {
                    Color = Colors.Grey,
                }.LayoutFlags(AbsoluteLayoutFlags.PositionProportional)
                 .LayoutBounds(new Point(0.5, 1), new Size(100, 25)),

                new BoxView
                {
                    Color = Colors.Tan,
                }.LayoutFlags(AbsoluteLayoutFlags.All)
                 .LayoutBounds(new Rect(0.5, 0.5, 1d / 3d, 1d / 3d))
            }
        };
    }
}

Примеры

Пример этих методов расширения можно найти в действии в сообществе .NET MAUI набор средств пример приложения.

API

Исходный код для AbsoluteLayout методов расширения можно найти в репозитории сообщества .NET MAUI Community набор средств GitHub.