UWP在课堂上打开新窗口

UWP在课堂上打开新窗口,uwp,windows-10-iot-core,new-window,openpages,Uwp,Windows 10 Iot Core,New Window,Openpages,我的项目中有太多的页面,我想在一个类中编写这些页面的开始和结束。但它不会打开新的一页 多谢各位 我的班级代码 class Class { public static void GoToOpenPage1() { Frame OpenPage1 = new Frame(); OpenPage1.Navigate(typeof(MainPage)); } } 按钮点击代码 private void button_Click(object se

我的项目中有太多的页面,我想在一个类中编写这些页面的开始和结束。但它不会打开新的一页

多谢各位

我的班级代码

class Class
{
    public static void GoToOpenPage1()
    {
        Frame OpenPage1 = new Frame();
        OpenPage1.Navigate(typeof(MainPage));
    }
}
按钮点击代码

private void button_Click(object sender, RoutedEventArgs e)
    {
        Class.GoToOpenPage1();
    }
创建框架后,需要将其插入到当前视觉树中,以便可以看到它

例如,我们在MainPage.xaml中创建一个网格

在MainPage.xaml.cs中,我们可以通过静态变量公开MainPage实例

公共静态主页当前; 公共主页 { this.InitializeComponent; 电流=这个; } 这样,当加载MainPage时,FrameContainer也将被加载。我们可以通过MainPage.Current.FrameContainer从外部获取该网格,然后将生成的框架插入到该网格中,这就完成了插入到可视化树的步骤

公共静态void gotopenpage1 { Frame OpenPage1=新帧; OpenPage1.NavigateTypeFootherPage; MainPage.Current.FrameContainer.Children.Clear; MainPage.Current.FrameContainer.Children.AddOpenPage1; } 但从您提供的代码来看,您似乎正在导航到主页。如果需要使主页再次成为窗口的内容,可以这样编写:

var rootFrame=Window.Current.Content作为框架; rootFrame.NavigatetypeofMainPage; 以上内容属于页面导航,如果要打开新窗口,可以参考本文档,其中提供了详细说明:


如果目标是Windows 10版本1903 SDK 18362或更高版本,则可以使用AppWindow API打开窗口:

在早期版本中,应创建CoreApplicationView:


我可以知道该应用程序正在Windows IoT Core上运行吗?如果是,Windows IoT Core仅支持单页UWP应用程序,它无法像在Windows桌面上一样打开新页面。
class Class
{
    public static async Task GoToOpenPage1()
    {
        AppWindow appWindow = await AppWindow.TryCreateAsync();
        Frame OpenPage1 = new Frame();
        OpenPage1.Navigate(typeof(MainPage));
        ElementCompositionPreview.SetAppWindowContent(appWindow, OpenPage1);
        await appWindow.TryShowAsync();
    }
}
class Class
{
    public static async Task GoToOpenPage1()
    {
        CoreApplicationView newView = CoreApplication.CreateNewView();
        int newViewId = 0;
        await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            Frame OpenPage1 = new Frame();
            OpenPage1.Navigate(typeof(MainPage));
            Window.Current.Content = OpenPage1;
            Window.Current.Activate();
            newViewId = ApplicationView.GetForCurrentView().Id;
        });
        bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
    }
}