Frame.Navigate 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
重载
Navigate(TypeName) | |
Navigate(TypeName, Object) | |
Navigate(TypeName, Object, NavigationTransitionInfo) |
使 Frame 加载由指定的 Page 派生数据类型表示的内容,同时传递由导航目标解释的参数,以及指示要使用的动画转换的值。 |
Navigate(TypeName)
public:
virtual bool Navigate(TypeName sourcePageType) = Navigate;
bool Navigate(TypeName const& sourcePageType);
public bool Navigate(System.Type sourcePageType);
function navigate(sourcePageType)
Public Function Navigate (sourcePageType As Type) As Boolean
参数
要导航到的页面,指定为对其分部类类型的类型引用。 必须是 Page 派生的数据类型;否则,将引发异常。 (类型引用作为 Microsoft .NET 的 System.Type 或 Visual C++ 组件扩展的 TypeName 帮助程序结构 (C++/CX) ) 提供。
返回
bool
如果 NavigationFailed 事件处理程序已将 Handled 设置为 true,则为 false;否则为 true。 有关详细信息,请参阅“备注”。
实现
注解
处理 NavigationFailed 事件以响应导航失败。 可以直接在事件处理程序中处理失败,也可以将 NavigationFailedEventArgs.Handled 属性设置为 true 并使用 Navigate 方法返回值来响应失败。
应用通常使用 GetNavigationState 在应用挂起时序列化帧的状态。 可以直接在应用代码中执行此操作, SuspensionManager
也可以使用 Visual Studio 模板生成的 类间接执行此操作。 若要使用 GetNavigationState 启用帧状态序列化,必须仅对导航参数使用基本类型,例如字符串、字符、数字和 GUID 类型。 否则,当应用挂起时 ,GetNavigationState 将引发异常。 如果不使用 GetNavigationState, 参数可以具有其他类型。
如果不使用 GetNavigationState,参数值可以具有复杂类型。 但是,仍应仅使用基本类型,以避免因帧的导航堆栈持有对 参数的引用而导致的内存使用量过多。 首选方法是不传递实际对象,而是传递可用于在目标登陆页中查找对象的标识符。 例如,不传递 Customer
对象,而是传递对 的 CustomerID
引用,然后在导航完成后查找 Customer
。
提示
如果使用 Microsoft .NET 语言 (C# 或 Microsoft Visual Basic) 进行编程, TypeName 类型将投影为 System.Type。 使用 C# 编程时,通常使用 typeof 运算符来获取对某个类型的 System.Type 的引用。 在 Microsoft Visual Basic 中,使用 GetType。 如果使用 Visual C++ 组件扩展 (C++/CX) ,则需要在其中创建 TypeName 帮助程序结构,则可以使用 typeid 组件扩展。
另请参阅
适用于
Navigate(TypeName, Object)
public:
virtual bool Navigate(TypeName sourcePageType, Platform::Object ^ parameter) = Navigate;
bool Navigate(TypeName const& sourcePageType, IInspectable const& parameter);
public bool Navigate(System.Type sourcePageType, object parameter);
function navigate(sourcePageType, parameter)
Public Function Navigate (sourcePageType As Type, parameter As Object) As Boolean
参数
要导航到的页面,指定为对其分部类类型的类型引用。 必须是 Page 派生的数据类型;否则,将引发异常。 (类型引用作为 Microsoft .NET 的 System.Type 或 Visual C++ 组件扩展的 TypeName 帮助程序结构 (C++/CX) ) 提供。
- parameter
-
Object
Platform::Object
IInspectable
要传递给目标页面的导航参数;必须具有基本类型 (string、char、numeric 或 GUID) 才能支持使用 GetNavigationState 进行参数序列化。
返回
bool
如果 NavigationFailed 事件处理程序已将 Handled 设置为 true,则为 false;否则为 true。 有关详细信息,请参阅“备注”。
另请参阅
适用于
Navigate(TypeName, Object, NavigationTransitionInfo)
public:
virtual bool Navigate(TypeName sourcePageType, Platform::Object ^ parameter, NavigationTransitionInfo ^ infoOverride) = Navigate;
bool Navigate(TypeName const& sourcePageType, IInspectable const& parameter, NavigationTransitionInfo const& infoOverride);
public bool Navigate(System.Type sourcePageType, object parameter, NavigationTransitionInfo infoOverride);
function navigate(sourcePageType, parameter, infoOverride)
Public Function Navigate (sourcePageType As Type, parameter As Object, infoOverride As NavigationTransitionInfo) As Boolean
参数
要导航到的页面,指定为对其分部类类型的类型引用。 必须是 Page 派生的数据类型;否则,将引发异常。 (类型引用作为 Microsoft .NET 的 System.Type 或 Visual C++ 组件扩展的 TypeName 帮助程序结构 (C++/CX) ) 提供。
- parameter
-
Object
Platform::Object
IInspectable
要传递给目标页面的导航参数;必须具有基本类型 (string、char、numeric 或 GUID) 才能支持使用 GetNavigationState 进行参数序列化。
- infoOverride
- NavigationTransitionInfo
有关动画切换的信息。
返回
bool
如果 NavigationFailed 事件处理程序已将 Handled 设置为 true,则为 false;否则为 true。 有关详细信息,请参阅“备注”。
示例
<Frame x:Name="myFrame">
<Frame.ContentTransitions>
<TransitionCollection>
<NavigationThemeTransition />
</TransitionCollection>
</Frame.ContentTransitions>
</Frame>
// Play the default animation
myFrame.Navigate(typeof(Page2), null);
// Explicitly play the page refresh animation
myFrame.Navigate(typeof(Page2), null, new EntranceNavigationTransitionInfo());
// Play the drill in animation
myFrame.Navigate(typeof(Page2), null, new DrillInNavigationTransitionInfo());
// Suppress the default animation
myFrame.Navigate(typeof(Page2), null, new SuppressNavigationTransitionInfo());