Xamarin Forms 3.1 UWP DisplayActionSheet-参数不正确。放置目标必须在视觉树中

时间:2018-06-25 14:54:50

标签: xamarin xamarin.forms uwp

我将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

参见此处:https://github.com/aherrick/UWPDisplayActionSheet

1 个答案:

答案 0 :(得分:1)

很抱歉我以前的错误答案

问题是Page1ModalPage,但是您仍然使用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;
}