在ContentPage Xamarin.Forms中修改NavigationStack时出现InvalidOperationException

时间:2015-12-01 22:50:04

标签: c# xamarin xamarin.ios xamarin.forms content-pages

当我在ContentPage中时,我无法对NavigationStack进行任何修改,这是一个奇怪的问题。

我想要做的是添加新页面,并在设备方向发生变化时删除页面中的上一页。

Code Code下面应该处理更改页面的问题:

private async void DoTest()
{
    Page originalRootPage = App.CurrentInitialized.Navigation.NavigationStack.Last();
    await App.CurrentInitialized.Navigation.PushAsync(new HomePage_Landscape());
    App.CurrentInitialized.Navigation.RemovePage(originalRootPage);
}

我在这个重写方法中调用上面的代码:

protected override async void OnSizeAllocated(double width, double height)
{
    base.OnSizeAllocated(width, height);
    DeviceInfo.SetSize(width, height);
    if (!DeviceInfo.IsOrientationPortrait())
    {
        MessagingCenter.Send<HomePage>(this, "Hi");
    }

}

我使用了自己定义的类DeviceInfo。但是,IsOrientationPortrait检查设备的高度是否大于设备宽度。

每当触发命令时调用DoTest方法都有效!但不是在改变方向时。

如果有更好的方法可以在横向过程中更改页面UI设计。请帮忙!

0 个答案:

没有答案