从Windows 10 Universal App中的MainPage打开一个新框架窗口?
发布时间:2020-12-14 04:25:35 所属栏目:Windows 来源:网络整理
导读:当我从通用应用程序的主窗口中单击按钮时,如何打开包含另一个xaml页面的新框架窗口? 解决方法 您可以从 GitHub上的官方Microsoft示例中查看有关如何执行此操作的示例,如可以找到 here,但我会在此快速总结.另一个更简单的实现可以在 Mike Taulty’s Blog找到
当我从通用应用程序的主窗口中单击按钮时,如何打开包含另一个xaml页面的新框架窗口?
解决方法
您可以从
GitHub上的官方Microsoft示例中查看有关如何执行此操作的示例,如可以找到
here,但我会在此快速总结.另一个更简单的实现可以在
Mike Taulty’s Blog找到.
由于您没有指定开发语言,我将假设C#和XAML. 在XAML中创建您的按钮,单击该按钮以创建一个新窗口: <Button Content="Create" HorizontalAlignment="Center" VerticalAlignment="Center" Click="OnCreate" /> 在后面的代码中,添加OnCreate单击处理程序: async void OnCreate(object sender,RoutedEventArgs e) { CoreApplicationView newCoreView = CoreApplication.CreateNewView(); ApplicationView newAppView = null; int mainViewId = ApplicationView.GetApplicationViewIdForWindow( CoreApplication.MainView.CoreWindow); await newCoreView.Dispatcher.RunAsync( CoreDispatcherPriority.Normal,() => { newAppView = ApplicationView.GetForCurrentView(); Window.Current.Content = new SubWindowUserControl(); Window.Current.Activate(); }); await ApplicationViewSwitcher.TryShowAsStandaloneAsync( newAppView.Id,ViewSizePreference.UseHalf,mainViewId,ViewSizePreference.UseHalf); } 这将创建一个新窗口,并获取原始窗口的应用程序视图ID供您参考.然后它等待一个调度的线程运行(在新窗口的UI线程中)以获取窗口包含的新视图,它以编程方式添加新的SubWindowUserControl,然后激活(您必须记住这样做).然后使用一些标准参数在新的独立窗口中显示新窗口. 有关ApplicationViewSwitcher类的更多详细信息,请查看API文档here. 要获取此代码并使其显示新的XAML页面,您可以创建新页面并更改OnCreate代码中新窗口上运行的异步任务,如下所示: await newCoreView.Dispatcher.RunAsync( CoreDispatcherPriority.Normal,() => { newAppView = ApplicationView.GetForCurrentView(); Window.Current.Content = new Frame(); (Window.Current.Content as Frame).Navigate(typeof(<your_page>)); Window.Current.Activate(); }); 这不是显示新的自定义XAML元素作为其内容,而是创建一个新的Frame,然后导航以显示您的XAML页面. 希望这可以帮助! (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
推荐文章
站长推荐
- windows-server-2003 – 午夜“帐户锁定”安全事
- Windows配置端口转发
- windows-nginx-https-本地配置
- windows – 如何阻止单个GPO的继承/应用?
- windows-7 – 比Sikuli更好的工具用于Windows 7(
- windows-7 – Windows 7版Virtual PC中“关闭”和
- 如何在Windows上使用Python的协议缓冲区?
- Microsoft .NET Framework多个远程代码执行漏洞(
- windows-server-2008-r2 – 如何在Windows Serve
- 订阅到期后,MSDN Windows许可证仍然可以正常工作
热点阅读