在Xamarin.Forms中,我希望能够在我的应用程序的任何页面上调用类似SetModal(content,...)
的方法。调用时,应在整个页面的顶部设置半透明蒙版(渲染所有内容都不可点击),然后在蒙版顶部设置内容(传入方法)。像典型的网络模式:
我该如何实现?
答案 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);
您也可以只做简单的提醒(例如"确定"或"确定" /"取消")如果这是您的'重新开始。