弹出窗口

您所在的位置:网站首页 隐藏弹出窗口 弹出窗口

弹出窗口

2023-06-03 04:40| 来源: 网络整理| 查看: 265

弹出项 项目 03/10/2023

弹出窗口是向用户呈现与其当前任务相关的信息的一种非常常见的方式。 操作系统提供了一种显示消息并要求用户做出响应的方法,这些警报通常在开发人员可以提供的内容以及布局和外观方面受到限制。

注意

如果你想向用户展示更微妙的东西,请查看我们的 Toast 和 Snackbar 选项。

视图 Popup 允许开发人员生成自己的自定义 UI 并将其呈现给用户。

生成弹出窗口

Popup可以使用 XAML 或 C# 创建 :

XAML 包括 XAML 命名空间

若要在 XAML 中使用工具包,需要将以下内容 xmlns 添加到页面或视图中:

xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"

因此,如下所示:

将修改为包含 , xmlns 如下所示:

定义弹出窗口

请注意,如果是 Popup 在 XAML 中创建的,它还必须具有 C# 代码隐藏文件。 若要了解此要求的原因,请参阅此 .NET MAUI 文档页。

创建 Popup 的最简单方法是向项目添加新 .NET MAUI ContentView (XAML) 的 ,然后将每个文件更改为以下内容:

public partial class SimplePopup : Popup { public SimplePopup() { InitializeComponent(); } }

重要

如果未随调用 InitializeComponent 一起创建隐藏代码文件,则在尝试显示 时 Popup将引发异常。

C# using CommunityToolkit.Maui.Views; var popup = new Popup { Content = new VerticalStackLayout { Children = { new Label { Text = "This is a very important message!" } } } }; 显示弹出窗口

生成 后, Popup 可以使用扩展 Popup 方法呈现它。

重要

Popup只能显示从 Page 或继承自 Page的实现。

using CommunityToolkit.Maui.Views; public class MyPage : ContentPage { public void DisplayPopup() { var popup = new SimplePopup(); this.ShowPopup(popup); } } 关闭弹出窗口

可通过两种不同的方式关闭 ; Popup 以编程方式或通过在弹出窗口外部点击来关闭 。

以编程方式关闭弹出窗口

若要关闭开发人员Popup,必须调用ClosePopup自身。 这通常是通过响应用户按下按钮来执行的。

如果我们通过添加 ok Button来增强前面的 XAML 示例:

在生成的事件处理程序中,我们将调用 Close,这将以编程方式关闭 Popup。

void OnOKButtonClicked(object? sender, EventArgs e) => Close(); 点击弹出窗口外部

默认情况下,用户可以点击 外部 Popup 将其关闭。 这可以通过使用 CanBeDismissedByTappingOutsideOfPopup 属性进行控制。 将此属性设置为 false 将阻止用户通过点击外部来关闭 Popup 。

返回结果

开发人员通常会从其用户寻求响应,该 Popup 视图允许开发人员返回可等待和操作的结果。

我们可以增强原始 XAML 示例,以显示如何实现此目的:

XAML

通过向 XAML 添加 2 个新按钮:

然后在 C# 中添加以下事件处理程序:

void OnYesButtonClicked(object? sender, EventArgs e) => Close(true); void OnNoButtonClicked(object? sender, EventArgs e) => Close(false);

方法 Close 允许提供值 object ,这是生成的返回值。 为了等待结果, ShowPopupAsync 必须使用 方法,如下所示:

using CommunityToolkit.Maui.Views; public class MyPage : ContentPage { public async Task DisplayPopup() { var popup = new SimplePopup(); var result = await this.ShowPopupAsync(popup); if (result is bool boolResult) { if (boolResult) { // Yes was tapped } else { // No was tapped } } } }

注意

为了在等待结果时处理 外部 Popup 的点击,可以更改通过 ResultWhenUserTapsOutsideOfPopup 属性返回的值。

属性 属性 类型 说明 Anchor View 获取或设置 View 定位点。 定位点是 Popup 将呈现最接近的位置。 配置定位点后,弹出窗口将显示在该控件上居中或尽可能接近。 CanBeDismissedByTappingOutsideOfPopup bool 获取或设置一个值,该值指示是否可以通过点击弹出窗口外部来消除弹出窗口。 在 Android 上 - 如果为 false,则禁用硬件后退按钮。 Color Color 获取或设置 Color 弹出窗口的 。 此颜色设置 的本机背景色 Popup,该颜色与在实际 Content中配置的任何背景色无关。 Content View 获取或设置 View 在 中 Popup呈现的内容。 HorizontalOptions LayoutAlignment 获取或设置 LayoutAlignment 用于在屏幕上水平定位 Popup 的 。 Result Task 获取已 Popup消除的最终结果。 Size Size 获取或设置 Size 弹出窗口显示的 。 除非指定 了 ,否则Size弹出窗口将 始终尝试将 的实际大小Popup限制为视图的大小。 Popup如果 使用HorizontalOptions不是默认值的 或 VerticalOptions 属性,则此属性Size是必需的。 VerticalOptions LayoutAlignment 获取或设置 LayoutAlignment 用于在屏幕上垂直定位 Popup 的 。 事件 事件 说明 Closed 关闭 时 Popup ,将调用被消除的事件。 Opened 打开 时 Popup ,将调用被消除的事件。 示例

可以在 .NET MAUI 社区工具包示例应用程序中找到此功能的示例。

API

可以在 .NET MAUI Community Toolkit GitHub 存储库中找到 的Popup源代码。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3