UWP Visual Basic .NET中如何显示自定义页面?
UWP中显示自定义HelpPage页面的解决方案
UWP的页面机制和WPF不同,WPF的Window类自带Show/ShowDialog方法,但UWP的Page类没有这些成员,所以你之前的WPF代码无法直接复用,以下是几种可行的实现方式:
方式一:在当前窗口导航到HelpPage(最常用)
如果你的应用是基于Frame导航架构(默认UWP项目都是这种结构),可以直接通过Frame导航到HelpPage:
' 获取应用的根Frame Dim rootFrame As Frame = CType(Window.Current.Content, Frame) ' 导航到HelpPage rootFrame.Navigate(GetType(HelpPage)) ' 如果是在某个页面内部调用,也可以直接用当前页面的Frame ' Me.Frame.Navigate(GetType(HelpPage))
方式二:以对话框形式弹出HelpPage
如果需要类似WPFShowDialog的模态弹出效果,可以将HelpPage嵌入到ContentDialog中:
' 需要将方法标记为Async,因为ShowAsync是异步方法 Async Sub ShowHelpDialog() Dim helpDialog As New ContentDialog() ' 将HelpPage设置为对话框内容 helpDialog.Content = New HelpPage() ' 设置对话框的关闭按钮 helpDialog.PrimaryButtonText = "关闭" ' 显示对话框 Await helpDialog.ShowAsync() End Sub
方式三:创建独立新窗口显示HelpPage
如果需要完全独立的窗口(类似WPF的新Window),可以通过CoreApplication创建新视图:
' 同样需要Async标记 Async Sub ShowHelpInNewWindow() Await Windows.ApplicationModel.Core.CoreApplication.CreateNewView().Dispatcher.RunAsync(Windows.UI.Core.CoreDispatcherPriority.Normal, Sub() Dim newFrame As New Frame() newFrame.Navigate(GetType(HelpPage)) Window.Current.Content = newFrame Window.Current.Activate() ' 设置新窗口标题 Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().Title = "帮助页面" End Sub) End Sub
内容的提问来源于stack exchange,提问作者Isaac Tenorio Londoño
相关产品推荐
相关产品推荐

