多个windows、Windows通用

Multiple windows, Windows Universal

我想在 PC 上 运行 为我的 windows 通用应用再 windows 一个 windows。但令我惊讶的是,这似乎并不容易。例如,在 WPF 中,我可以向我的项目添加一个新项目,并且 select 和 window。在通用中,新项目中没有 "Window"。我可以声明一个 class windows.ui.xaml.window 的对象,但我无法实例化它(没有新的)或显示它。如何启动另一个 window?谢谢

有一个 sample available on Microsoft's UWP GitHub repo 涵盖了为您的应用程序创建多个视图。如果您需要,我可以提供更多信息或帮助

最终找到了一些非常简单的东西,按类型获取页面,创建它并在里面创建一个 window,然后 returns 创建页面对象:

    async Task<Page> CreatePageWindowAsync(Type p)
    {
        CoreApplicationView newView = CoreApplication.CreateNewView();
        int newViewId = 0;
        Page pg = null;
        await newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal, () =>
        {
            Frame frame = new Frame();
            frame.Navigate(p, null);
            Window.Current.Content = frame;
            Window.Current.Activate();
            newViewId = ApplicationView.GetForCurrentView().Id;
            pg = frame.Content as Page;
        });
        bool viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(newViewId);
        return (pg);
    }