Windows runtime 多窗口,windows通用

Windows runtime 多窗口,windows通用,windows-runtime,visual-studio-2015,winrt-xaml,windows-10,Windows Runtime,Visual Studio 2015,Winrt Xaml,Windows 10,我希望有第二个(或更多)windows,让我的windows universal应用程序在PC上运行。但令我惊讶的是,这似乎并不容易。例如,在WPF中,我可以向我的项目添加一个新项并选择一个窗口。在Universal中,新项目中没有“窗口”。我可以声明类windows.ui.xaml.window的对象,但不能实例化它(没有新的)或显示它。如何启动另一个窗口?谢谢这里有一个为您的应用程序创建多个视图的方法。如果您需要,我可以提供更多信息或帮助最终找到了一些非常简单的内容,按类型获取一个页面,创建

我希望有第二个(或更多)windows,让我的windows universal应用程序在PC上运行。但令我惊讶的是,这似乎并不容易。例如,在WPF中,我可以向我的项目添加一个新项并选择一个窗口。在Universal中,新项目中没有“窗口”。我可以声明类windows.ui.xaml.window的对象,但不能实例化它(没有新的)或显示它。如何启动另一个窗口?谢谢

这里有一个为您的应用程序创建多个视图的方法。如果您需要,我可以提供更多信息或帮助

最终找到了一些非常简单的内容,按类型获取一个页面,创建它和一个包含它的窗口,并返回创建的页面对象:

    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);
    }
异步任务CreatePageWindowAsync(类型p) { CoreApplicationView newView=CoreApplication.CreateNewView(); int newViewId=0; 第pg页=空; 等待newView.Dispatcher.RunAsync(CoreDispatcherPriority.Normal,()=> { 框架=新框架(); frame.Navigate(p,null); Window.Current.Content=frame; Window.Current.Activate(); newViewId=ApplicationView.GetForCurrentView().Id; pg=框架。内容为页面; }); bool VIEWSHOWED=等待应用程序ViewSwitcher.TryShowAsStandaloneAsync(newViewId); 回报率(pg); }
好的,这的确是一个新窗口,但它非常复杂!!例如,在WPF中,我可以创建一个新窗口,并使用设计器在其上添加一些控件,然后只做一些类似于dim w的操作,例如new MyWindow,w.show-在universal中是否有与此等效的操作?@Ianb它不能与WPF相同,并且仍然可以跨各种Windows平台(如手机、Xbox)进行移植当Windows桌面在平板电脑模式下运行时。不幸的是,要处理这些场景,辅助窗口的管理更加复杂。这是UWP模板10的本机功能: