c ++ / winRT Навигация между двумя страницами

Я пытаюсь перейти со страницы (SettingsPage) на другую страницу (Page1). Вот что пробовали:

this->Frame::Navigate(typeid(Page1))

И я получаю эту ошибку - Ошибка (активная) Полное имя E0244 не является членом класса «winrt :: Calculator :: implementation :: SettingsPage» или его базовых классов ...

Мой вопрос - как правильно позвонить.


person Jack Detrick    schedule 08.12.2018    source источник


Ответы (1)


Используйте шаблон функции xaml_typename, чтобы получить объект, который надлежащим образом описывает тип в XAML (как TypeName struct) в C ++ / WinRT. Обязательно передайте соответствующий тип, например

this->Frame().Navigate(xaml_typename<Page1>());

Убедитесь, что #include <winrt/Windows.UI.Xaml.Interop.h> определяет шаблон функции xaml_typename.

Обратите внимание, что Frame - это свойство Page, доступ к которому осуществляется с помощью круглых скобок в C ++ / WinRT. Также обратите внимание, что Навигация является нестатическим членом класса, поэтому вы не можете использовать оператор разрешения области (::).

person IInspectable    schedule 09.12.2018