Xamarin.Forms - 如何创建可重用的模态?

时间:2016-03-28 20:28:46

标签: xamarin modal-dialog xamarin.forms

在Xamarin.Forms中,我希望能够在我的应用程序的任何页面上调用类似SetModal(content,...)的方法。调用时,应在整个页面的顶部设置半透明蒙版(渲染所有内容都不可点击),然后在蒙版顶部设置内容(传入方法)。像典型的网络模式:

enter image description here

我该如何实现?

2 个答案:

答案 0 :(得分:1)

您可以使用this之类的内容。它是使用Forms视图创建的可重用弹出控件。

答案 1 :(得分:0)

最好(最原生的感觉)方式取决于你的内容需要多么复杂。

对于任意复杂的内容......

与您过去习惯使用的内容最相似的是,Xamarin.Forms公开了support for Modals,大多数情况与您所说的一样。

我不熟悉,不能给你一个很好的答案,说明这是否会支持你所说的造型,但这就是我开始的地方。

代码方面,我只是直接从该链接窃取这一点,但它非常简单。

var detailPage = new DetailPage ();

// ...

await Navigation.PushModalAsync (detailPage);

还支持诸如后退按钮禁用等漂亮的东西。

如果您需要经常显示相同的模态,您可以共享该代码,但通常会共享这样的UI。

对于简单的选择和警报......

这是大多数移动用户在这些情况下习惯使用的内容(适用于UX)。 Pop-ups将在每个平台上呈现为适当样式的元素。

再次,从该链接逐字提取,Page提供了方法DisplayActionSheet,这使您可以执行此类弹出窗口中最复杂的方法。

var action = await DisplayActionSheet ("ActionSheet: SavePhoto?", "Cancel", "Delete", "Photo Roll", "Email");
Debug.WriteLine ("Action: " + action);

您也可以只做简单的提醒(例如"确定"或"确定" /"取消")如果这是您的'重新开始。