从标记加载页面时如何使用导航框架?

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.