我将Xamarin Forms项目升级到Forms 3.1
在UWP中,我将动作表显示在如下所示的静态类中:
App.Current.MainPage.DisplayActionSheet();
Forms 2.5显示操作表没有问题。
Forms 3.1崩溃。
ArgumentException: The parameter is incorrect.
Placement target needs to be in the visual tree.
DisplayActionSheet
在类文件中的工作方式是否有所改变?
目前我还没有提到ContentPage
。
在没有引用DisplayActionSheet
的情况下是否有更好的方法来访问ContentPage
?
答案 0 :(得分:1)
很抱歉我以前的错误答案
问题是Page1
是ModalPage
,但是您仍然使用NavigationStack
中作为父原因的页面ActionSheet
呈现在错误的位置。
public static Page Instance
{
get
{
Page ret = null;
if (Application.Current.MainPage.Navigation.NavigationStack != null)
ret = Application.Current.MainPage.Navigation.NavigationStack.LastOrDefault();
if (ret == null)
ret = Application.Current.MainPage;
return ret;
}
}
如果您使用了PushModalAsync
方法,则该页面将堆积在ModalStack
get
{
Page ret = null;
if (Application.Current.MainPage.Navigation.ModalStack != null)
ret = Application.Current.MainPage.Navigation.ModalStack.LastOrDefault();
if (ret == null)
ret = Application.Current.MainPage;
return ret;
}