Xamarin Forms 3.1 UWP DisplayActionSheet-参数不正确。放置目标需要位于可视树中

Xamarin Forms 3.1 UWP DisplayActionSheet-参数不正确。放置目标需要位于可视树中,xamarin,xamarin.forms,uwp,Xamarin,Xamarin.forms,Uwp,我将我的Xamarin表单项目升级为表单3.1 在UWP中,我在一个静态类中显示动作表,如下所示: App.Current.MainPage.DisplayActionSheet(); 表格2.5显示无问题的行动表 表格3.1 ArgumentException: The parameter is incorrect. Placement target needs to be in the visual tree. 类文件中DisplayActionSheet的工作方式是否发生了变化 我现

我将我的Xamarin表单项目升级为表单3.1

在UWP中,我在一个静态类中显示动作表,如下所示:

App.Current.MainPage.DisplayActionSheet();
表格2.5显示无问题的行动表

表格3.1

ArgumentException: The parameter is incorrect.

Placement target needs to be in the visual tree.
类文件中
DisplayActionSheet
的工作方式是否发生了变化

我现在没有提到
ContentPage

有没有更好的方法可以不参考
ContentPage
而显示操作表


请参见此处:

对不起,我刚才的回答不正确

问题在于
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;
}

如果这是真的,我认为最好在将
App
更改为
Application
时记录一个问题,它是否有效?没有相同的结果不幸的是,这是正确的吗?我以为OnAppearing()方法是在基于页面的Xamarin表单的UWP堆栈中调用的。Loaded event>这不会假设(读取UWP文档)页面在XAML树中已准备就绪吗?谢谢您的想法。我已经更新了我的样本,以证明它与外观无关(),它仍然有错误。@aherrick我已经更新了我的答案并更正了我的错误。@NicoZhu MSFT看起来好像收到了,谢谢!但是我仍然觉得这是一种形式的回归