Frame.Navigate 方法

定义

重载

Navigate(TypeName)

使 Frame 加载由指定的 Page 表示的内容。

Navigate(TypeName, Object)

使 Frame 加载由指定的 Page 表示的内容,同时传递参数以由导航目标解释。

Navigate(TypeName, Object, NavigationTransitionInfo)

使 Frame 加载由指定的 Page 派生数据类型表示的内容,同时传递由导航目标解释的参数,以及指示要使用的动画转换的值。

Navigate(TypeName)

使 Frame 加载由指定的 Page 表示的内容。

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

参数

sourcePageType
TypeName Type

要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。

返回

Boolean

bool

false 如果 NavigationFailed 事件处理程序已将 Handledtrue设置为 ,则为 ;否则为 true。 有关详细信息,请参阅“备注”。

实现

M:Microsoft.UI.Xaml.Controls.INavigate.Navigate(Windows.UI.Xaml.Interop.TypeName) M:Microsoft.UI.Xaml.Controls.INavigate.Navigate(System.Type)

适用于

Navigate(TypeName, Object)

使 Frame 加载由指定的 Page 表示的内容,同时传递参数以由导航目标解释。

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

参数

sourcePageType
TypeName Type

要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。

parameter
Object

Platform::Object

IInspectable

要传递给目标页的导航参数。

返回

Boolean

bool

false 如果 NavigationFailed 事件处理程序已将 Handledtrue设置为 ,则为 ;否则为 true。 有关详细信息,请参阅“备注”。

属性

适用于

Navigate(TypeName, Object, NavigationTransitionInfo)

使 Frame 加载由指定的 Page 派生数据类型表示的内容,同时传递由导航目标解释的参数,以及指示要使用的动画转换的值。

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

参数

sourcePageType
TypeName Type

要导航到的页面,指定为对其分部类类型的类型引用。 (类型引用作为 Microsoft .NET 的 System.Type 或 C++) 的 TypeName 帮助程序结构提供。

parameter
Object

Platform::Object

IInspectable

要传递给目标页面的导航参数;必须具有基本类型 (string、char、numeric 或 GUID) 才能支持使用 GetNavigationState 进行参数序列化。

infoOverride
NavigationTransitionInfo

有关动画切换的信息。

返回

Boolean

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++/WinRTwinrt::xaml_typename<T>() 则可以使用帮助程序函数创建 TypeName 对象。 有关更多详细信息和代码示例,请参阅 winrt::xaml_typename 函数模板

另请参阅

适用于