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


Отображение модальной страницы в качестве всплывающего элемента в iOS и Mac Catalyst

Этот пользовательский интерфейс многоплатформенного приложения .NET (.NET MAUI) для платформы iOS используется для отображения модальной страницы в виде всплывающей панели. Он используется путем задания привязки свойства Page.ModalPopoverSourceView к View, привязки свойства Page.ModalPopoverRect к Rectangleи привязки свойства Page.ModalPresentationStyle к UIModalPresentationStyle.Popover. Это можно сделать в C# с помощью api fluent:

using Microsoft.Maui.Controls.PlatformConfiguration;
using Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific;
...

public partial class PopoverPage : ContentPage
{
    public PopoverPage(View modal, Rectangle rectangle)
    {
        InitializeComponent();
        On<iOS>().SetModalPopoverView(modal);
        On<iOS>().SetModalPopoverRect(rectangle);
        On<iOS>().SetModalPresentationStyle(UIModalPresentationStyle.Popover);
    }
}

Метод Page.On<iOS> указывает, что эта специфичная для платформы функция будет выполняться только на iOS. Метод Page.SetModalPopoverView в пространстве имен Microsoft.Maui.Controls.PlatformConfiguration.iOSSpecific используется для задания исходного представления всплывающего окна. Метод Page.SetModalPopoverRect используется для задания прямоугольника в представлении, из которого будет возникать всплывающее окно. Метод Page.SetModalPresentationStyle используется для установки модального стиля представления на popover, задав значение перечисления UIModalPresentationStyle.Popover.

Страницы, использующие эту платформу для отображения модальной страницы в качестве всплывающего окна, должны использовать модальную навигацию:

Page modalPage = new PopoverPage(originButton, Rectangle.Empty);
await Navigation.PushModalAsync(modalPage);

Дополнительные сведения об модальной навигации см. в разделе Выполнение модальной навигации.