如何使用带有 C++ 桌面应用程序的 WinUI3 导航到新页面?
How to navigate to a new page using WinUI3 with C++ desktop app?
首先,我在 Visual Studio.
中使用模板“空白应用程序,打包(桌面中的 WinUI)”创建了一个项目
然后我将 MainWindow.xaml 中的代码更改为一个简单的框架:
<Frame x:Name="rootFrame"></Frame>
然后我添加一个 BlankPage 并尝试像这样导航到 BlankPage:
rootFrame().Navigate(xaml_typename<BlankPage>());
然后visual studio给我报错:
winrt\Windows.UI.Xaml.Interop.h(643,29): error C2338: T must be WinRT type.
我不知道怎么办...
终于找到问题所在了。和命名空间有关,当我创建一个新的页面时,有三个命名空间:
winrt::PROJECTNAME::implementation::BlankPage
winrt::PROJECTNAME::factory_implementation::BlankPage
PROJECTNAME::BlankPage
我应该使用 BlankPage.idl
中定义的 PROJECTNAME::BlankPage
首先,我在 Visual Studio.
中使用模板“空白应用程序,打包(桌面中的 WinUI)”创建了一个项目然后我将 MainWindow.xaml 中的代码更改为一个简单的框架:
<Frame x:Name="rootFrame"></Frame>
然后我添加一个 BlankPage 并尝试像这样导航到 BlankPage:
rootFrame().Navigate(xaml_typename<BlankPage>());
然后visual studio给我报错:
winrt\Windows.UI.Xaml.Interop.h(643,29): error C2338: T must be WinRT type.
我不知道怎么办...
终于找到问题所在了。和命名空间有关,当我创建一个新的页面时,有三个命名空间:
winrt::PROJECTNAME::implementation::BlankPage
winrt::PROJECTNAME::factory_implementation::BlankPage
PROJECTNAME::BlankPage
我应该使用 BlankPage.idl
中定义的 PROJECTNAME::BlankPage