Skip to content

Latest commit

 

History

History
75 lines (48 loc) · 4.6 KB

frame_navigate_1557370995.md

File metadata and controls

75 lines (48 loc) · 4.6 KB
-api-id -api-type
M:Microsoft.UI.Xaml.Controls.Frame.Navigate(Windows.UI.Xaml.Interop.TypeName,System.Object,Microsoft.UI.Xaml.Media.Animation.NavigationTransitionInfo)
winrt method

Microsoft.UI.Xaml.Controls.Frame.Navigate

-description

Causes the Frame to load content represented by the specified Page-derived data type, also passing a parameter to be interpreted by the target of the navigation, and a value indicating the animated transition to use.

-parameters

-param sourcePageType

The page to navigate to, specified as a type reference to its partial class type. (A type reference is given as System.Type for Microsoft .NET, or a TypeName helper struct for C++).

-param parameter

The navigation parameter to pass to the target page; must have a basic type (string, char, numeric, or GUID) to support parameter serialization using GetNavigationState.

-param infoOverride

Info about the animated transition.

-returns

false if a NavigationFailed event handler has set Handled to true; otherwise, true. See Remarks for more info.

-remarks

You handle the NavigationFailed event to respond to navigation failure. You can handle the failure directly in the event handler, or you can set the NavigationFailedEventArgs.Handled property to true and use the Navigate method return value to respond to the failure.

Parameter values

You can use GetNavigationState to serialize the frame's state, and SetNavigationState to restore it later. To enable frame state serialization using these methods, you must use only basic types for the navigation parameter, such as string, char, numeric, and GUID types. Otherwise, GetNavigationState will throw an exception.

The parameter value can have a complex type if you do not use GetNavigationState. However, you should still use only basic types in order to avoid excess memory usage caused by the frame’s navigation stack holding a reference to the parameter. A preferred approach is to not pass the actual object, but instead pass an identifier that you can use to look up the object in the target landing page. For example, instead of passing a Customer object, pass a reference to the CustomerID, then look up the Customer after the navigation is complete.

Tip

If you are programming using a Microsoft .NET language (C# or Microsoft Visual Basic), the TypeName type projects as System.Type. When programming using C#, it is common to use the typeof operator to get references to the System.Type of a type. In Microsoft Visual Basic, use GetType. If you're using C++/WinRT you can use the winrt::xaml_typename<T>() helper function to create a TypeName object. See winrt::xaml_typename function template for more details, and a code example.

-examples

<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());

-see-also

Page, NavigationFailed, Navigation design basics