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
参数
要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。
返回
bool
false
如果 NavigationFailed 事件处理程序已将 Handledtrue
设置为 ,则为 ;否则为 true
。 有关详细信息,请参阅“备注”。
实现
适用于
Navigate(TypeName, Object)
public:
virtual bool Navigate(TypeName sourcePageType, Platform::Object ^ parameter) = Navigate;
/// [Windows.Foundation.Metadata.Overload("Navigate")]
bool Navigate(TypeName const& sourcePageType, IInspectable const& parameter);
[Windows.Foundation.Metadata.Overload("Navigate")]
public bool Navigate(System.Type sourcePageType, object parameter);
function navigate(sourcePageType, parameter)
Public Function Navigate (sourcePageType As Type, parameter As Object) As Boolean
参数
要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。
- parameter
-
Object
Platform::Object
IInspectable
要传递给目标页的导航参数。
返回
bool
false
如果 NavigationFailed 事件处理程序已将 Handledtrue
设置为 ,则为 ;否则为 true
。 有关详细信息,请参阅“备注”。
- 属性
适用于
Navigate(TypeName, Object, NavigationTransitionInfo)
public:
virtual bool Navigate(TypeName sourcePageType, Platform::Object ^ parameter, NavigationTransitionInfo ^ infoOverride) = Navigate;
/// [Windows.Foundation.Metadata.Overload("NavigateWithTransitionInfo")]
bool Navigate(TypeName const& sourcePageType, IInspectable const& parameter, NavigationTransitionInfo const& infoOverride);
[Windows.Foundation.Metadata.Overload("NavigateWithTransitionInfo")]
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
参数
要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。
- parameter
-
Object
Platform::Object
IInspectable
要传递给目标页面的导航参数;必须具有基本类型 (string、char、numeric 或 GUID) 才能支持使用 GetNavigationState 进行参数序列化。
- infoOverride
- NavigationTransitionInfo
有关动画切换的信息。
返回
bool
false
如果 NavigationFailed 事件处理程序已将 Handledtrue
设置为 ,则为 ;否则为 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());
注解
处理 NavigationFailed 事件以响应导航失败。 可以直接在事件处理程序中处理失败,也可以将 NavigationFailedEventArgs.Handled 属性设置为 true
,并使用 Navigate 方法返回值来响应失败。
参数值
可以使用 GetNavigationState 序列化帧的状态,并使用 SetNavigationState 在以后还原它。 若要使用这些方法启用帧状态序列化,必须仅对导航 parameter
使用基本类型,例如字符串、字符、数字和 GUID 类型。 否则, GetNavigationState
将引发异常。
如果不使用 GetNavigationState,该值parameter
可以具有复杂类型。 但是,仍应仅使用基本类型,以避免因帧的导航堆栈持有对 parameter
的引用而导致的内存使用量过多。 首选方法是不传递实际对象,而是传递可用于在目标登陆页中查找对象的标识符。 例如,不传递 Customer
对象,而是传递对 的 CustomerID
引用,然后在导航完成后查找 Customer
。
提示
如果使用 Microsoft .NET 语言 (C# 或 Microsoft Visual Basic) 进行编程, TypeName 类型将投影为 System.Type。 使用 C# 编程时,通常使用 typeof
运算符来获取对某个类型的 System.Type 的引用。 在 Microsoft Visual Basic 中,使用 GetType
。 如果使用的是 C++/WinRT , winrt::xaml_typename<T>()
则可以使用帮助程序函数创建 TypeName
对象。 有关更多详细信息和代码示例,请参阅 winrt::xaml_typename 函数模板 。