在UWP的开发过程中,页面之间的切换非常常见。在切换的过程中我们想要同时传递一些我们需要的参数或者数据,页面导航的函数已经为我们准备好了参数传递的功能,我们直接用就好了。
基本说明:
public:
virtual bool Navigate(TypeName sourcePageType, Platform::Object ^ parameter, NavigationTransitionInfo ^ infoOverride) = Navigate;
//第一个参数是需要导航的页面类型
//第二个参数就是我们需要的
//第三个是导航动画
需要执行导航操作的事件函数下加入
Frame->Navigate(TypeName(UserPage::typeid), nullptr, ref new DrillInNavigationTransitionInfo());
在导航目标页面的UserPage.xaml.cpp文件下添加
void MyAPP::UserPage::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e)
{
//code
}
在对应的头文件UserPage.xaml.h中添加
public ref class MainPage sealed
{
//一些本来就有的代码
protected:
virtual void OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e) override;
}
例子:
现在我们要传递一个textbox控件的内容
/**SourcePage*****************************************************************************/
Frame->Navigate(TypeName(UserPage::typeid), UserName->Text, ref new DrillInNavigationTransitionInfo());
/**TagetPage*****************************************************************************/
void MyAPP::UserPage::OnNavigatedTo(Windows::UI::Xaml::Navigation::NavigationEventArgs^ e)
{
auto Name = e->Parameter->ToString();
//这样Name里面存的就是导航其实页中textbox输入的字符串啦
}
笔者的其他相关文章:
Win10-UWP应用C++/CX编程-创建能在多个页面使用的全局变量(普通)
Win10-UWP应用C++/CX编程-创建能在多个页面使用的全局变量(顶层)
参考链接:
1.VC++ UWP app OnNavigatedTo( NavigationEventArgs^ ) won’t compile
2.在页面之间传递信息
3.Navigate(Type, Object, NavigationTransitionInfo)