C# 在内容页Xamarin.Forms中修改NavigationStack时出现InvalidOperationException
有一个奇怪的问题,当我在ContentPage中时,我无法对NavigationStack进行任何修改 我想做的是添加一个新页面,并在设备方向改变时删除页面内的前一个页面 以下代码应处理更改页面的问题:C# 在内容页Xamarin.Forms中修改NavigationStack时出现InvalidOperationException,c#,xamarin,xamarin.ios,xamarin.forms,content-pages,C#,Xamarin,Xamarin.ios,Xamarin.forms,Content Pages,有一个奇怪的问题,当我在ContentPage中时,我无法对NavigationStack进行任何修改 我想做的是添加一个新页面,并在设备方向改变时删除页面内的前一个页面 以下代码应处理更改页面的问题: private async void DoTest() { Page originalRootPage = App.CurrentInitialized.Navigation.NavigationStack.Last(); await App.CurrentInitialized
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");
}
}
受保护的覆盖异步无效OnSizeAllocated(双倍宽度,双倍高度)
{
底座。尺寸定位(宽度、高度);
设备信息设置大小(宽度、高度);
如果(!DeviceInfo.IsOrientationPortrait())
{
MessagingCenter.发送(此“嗨”);
}
}
我使用了自己定义的类DeviceInfo。但是,IsorientationRotatic检查设备的高度是否大于设备的宽度
无论何时触发命令,都可以调用DoTest方法!但不是在方向改变的时候
如果有更好的方法,请在横向浏览期间更改页面UI设计。请帮忙 当方向发生变化时删除页面似乎是一种自找麻烦的情况:)您能解释一下为什么需要这样做吗,也许有更好的方法。您的InvalidOperationException中的信息是什么?