从标记加载页面时如何使用导航框架?
How to use navigate a frame when loading page from markup?
我将页面 <Page>
的 XAML 标记代码写入文件 page.xaml
。我正在使用 XamlReader::Load()
来读取我的文件 - 成功了。它将其保存为变量 rootPage
.
但是函数 Frame::Navigate<T>()
将 TypeName
作为 T
。我没有自定义页面 class,我只是将它保存为一个变量。那么,如果该页面写在 XAML 文本文件中,我该如何加载该页面然后导航到该页面?
Navigate方法的第一个参数需要作为页面类型传递。你不需要创建页面实例,你只需要传递页面的类型。您可以使用 winrt::xaml_typename() 辅助函数来创建关于您要导航到的页面的 TypeName 对象。例如:
void MainPage::ClickHandler(IInspectable const&, RoutedEventArgs const&)
{
Frame().Navigate(xaml_typename<page>());
}
更详细的可以参考这篇document.
我将页面 <Page>
的 XAML 标记代码写入文件 page.xaml
。我正在使用 XamlReader::Load()
来读取我的文件 - 成功了。它将其保存为变量 rootPage
.
但是函数 Frame::Navigate<T>()
将 TypeName
作为 T
。我没有自定义页面 class,我只是将它保存为一个变量。那么,如果该页面写在 XAML 文本文件中,我该如何加载该页面然后导航到该页面?
Navigate方法的第一个参数需要作为页面类型传递。你不需要创建页面实例,你只需要传递页面的类型。您可以使用 winrt::xaml_typename() 辅助函数来创建关于您要导航到的页面的 TypeName 对象。例如:
void MainPage::ClickHandler(IInspectable const&, RoutedEventArgs const&)
{
Frame().Navigate(xaml_typename<page>());
}
更详细的可以参考这篇document.