当我在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设计。请帮忙!