Skip to content

Commit 1c9a820

Browse files
authored
update motion articles for WinUI 3 (#5934)
* update for WinUI3 * fixes * few more fixes
1 parent 9a6c63b commit 1c9a820

8 files changed

Lines changed: 416 additions & 489 deletions

hub/apps/design/motion/connected-animation.md

Lines changed: 46 additions & 54 deletions
Large diffs are not rendered by default.

hub/apps/design/motion/key-frame-and-easing-function-animations.md

Lines changed: 46 additions & 49 deletions
Large diffs are not rendered by default.

hub/apps/design/motion/motion-in-practice.md

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ title: Motion in practice - animation in Windows apps
33
description: Learn how Fluent motion fundamentals like timing, easing, directionality, and gravity come together in your app.
44
label: Motion in practice
55
template: detail.hbs
6-
ms.date: 09/18/2024
6+
ms.date: 10/29/2025
77
ms.topic: how-to
88
doc-status: Published
99
ms.localizationpriority: medium
@@ -56,39 +56,41 @@ Grow: 150ms; Easing: Default Accelerate
5656
:::column-end:::
5757
:::row-end:::
5858

59-
### Examples
59+
## Implicit Animations
60+
61+
Implicit animations are a simple way to achieve Fluent motion by automatically interpolating between the old and new values during a parameter change.
62+
63+
> [!div class="checklist"]
64+
>
65+
> - **Important APIs:** [Windows.UI.Xaml.Media.Animation Namespace](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation), [Windows.UI.Xaml.Controls namespace](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls)
6066
6167
> [!div class="nextstepaction"]
6268
> [Open the WinUI 3 Gallery app and see Implicit Transitions in action](winui3gallery://item/ImplicitTransition)
6369
6470
[!INCLUDE [winui-3-gallery](../../../includes/winui-3-gallery.md)]
6571

66-
## Implicit Animations
67-
68-
Implicit animations are a simple way to achieve Fluent motion by automatically interpolating between the old and new values during a parameter change.
69-
7072
You can implicitly animate changes to the following properties:
7173

72-
- [UIElement](/uwp/api/windows.ui.xaml.uielement)
74+
- [UIElement](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement)
7375
- **Opacity**
7476
- **Rotation**
7577
- **Scale**
7678
- **Translation**
7779

78-
- [Border](/uwp/api/windows.ui.xaml.controls.border), [ContentPresenter](/uwp/api/windows.ui.xaml.controls.contentpresenter), or [Panel](/uwp/api/windows.ui.xaml.controls.panel)
80+
- [Border](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.border), [ContentPresenter](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.contentpresenter), or [Panel](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.panel)
7981
- **Background**
8082

8183
Each property that can have changes implicitly animated has a corresponding _transition_ property. To animate the property, you assign a transition type to the corresponding _transition_ property. This table shows the _transition_ properties and the transition type to use for each one.
8284

8385
| Animated property | Transition property | Implicit transition type |
8486
| -- | -- | -- |
85-
| [UIElement.Opacity](/uwp/api/windows.ui.xaml.uielement.opacity) | [OpacityTransition](/uwp/api/windows.ui.xaml.uielement.opacitytransition) | [ScalarTransition](/uwp/api/windows.ui.xaml.scalartransition) |
86-
| [UIElement.Rotation](/uwp/api/windows.ui.xaml.uielement.rotation) | [RotationTransition](/uwp/api/windows.ui.xaml.uielement.rotationtransition) | [ScalarTransition](/uwp/api/windows.ui.xaml.scalartransition) |
87-
| [UIElement.Scale](/uwp/api/windows.ui.xaml.uielement.scale) | [ScaleTransition](/uwp/api/windows.ui.xaml.uielement.scaletransition) | [Vector3Transition](/uwp/api/windows.ui.xaml.vector3transition) |
88-
| [UIElement.Translation](/uwp/api/windows.ui.xaml.uielement.translation) | [TranslationTransition](/uwp/api/windows.ui.xaml.uielement.translationtransition) | [Vector3Transition](/uwp/api/windows.ui.xaml.vector3transition) |
89-
| [Border.Background](/uwp/api/windows.ui.xaml.controls.border.background) | [BackgroundTransition](/uwp/api/windows.ui.xaml.controls.border.backgroundtransition) | [BrushTransition](/uwp/api/windows.ui.xaml.brushtransition) |
90-
| [ContentPresenter.Background](/uwp/api/windows.ui.xaml.controls.contentpresenter.background) | [BackgroundTransition](/uwp/api/windows.ui.xaml.controls.contentpresenter.backgroundtransition) | [BrushTransition](/uwp/api/windows.ui.xaml.brushtransition) |
91-
| [Panel.Background](/uwp/api/windows.ui.xaml.controls.panel.background) | [BackgroundTransition](/uwp/api/windows.ui.xaml.controls.panel.backgroundtransition) | [BrushTransition](/uwp/api/windows.ui.xaml.brushtransition) |
87+
| [UIElement.Opacity](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.opacity) | [OpacityTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.opacitytransition) | [ScalarTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.scalartransition) |
88+
| [UIElement.Rotation](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.rotation) | [RotationTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.rotationtransition) | [ScalarTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.scalartransition) |
89+
| [UIElement.Scale](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.scale) | [ScaleTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.scaletransition) | [Vector3Transition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.vector3transition) |
90+
| [UIElement.Translation](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.translation) | [TranslationTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.uielement.translationtransition) | [Vector3Transition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.vector3transition) |
91+
| [Border.Background](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.border.background) | [BackgroundTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.border.backgroundtransition) | [BrushTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.brushtransition) |
92+
| [ContentPresenter.Background](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.contentpresenter.background) | [BackgroundTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.contentpresenter.backgroundtransition) | [BrushTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.brushtransition) |
93+
| [Panel.Background](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.panel.background) | [BackgroundTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.panel.backgroundtransition) | [BrushTransition](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.brushtransition) |
9294

9395
This example shows how to use the Opacity property and transition to make a button fade in when the control is enabled and fade out when it's disabled.
9496

@@ -115,7 +117,7 @@ public double OpaqueIfEnabled(bool IsEnabled)
115117

116118
> [!div class="checklist"]
117119
>
118-
> - **UWP APIs:** [Windows.UI.Xaml.Media.Animation Namespace](/uwp/api/windows.ui.xaml.media.animation), [Windows.UI.Xaml.Controls namespace](/uwp/api/windows.ui.xaml.controls.ratingcontrol)
120+
> - **UWP APIs:** [Windows.UI.Xaml.Media.Animation Namespace](/uwp/api/windows.ui.xaml.media.animation), [Windows.UI.Xaml.Controls namespace](/uwp/api/windows.ui.xaml.controls)
119121
> - **WinUI 2 Apis:** [Microsoft.UI.Xaml.Controls namespace](/windows/winui/api/microsoft.ui.xaml.controls)
120122
> - [Open the WinUI 2 Gallery app and see Implicit Transitions in action](winui2gallery://item/ImplicitTransition). [!INCLUDE [winui-2-gallery](../../../includes/winui-2-gallery.md)]
121123

hub/apps/design/motion/page-transitions.md

Lines changed: 20 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -2,34 +2,25 @@
22
title: Page transitions
33
description: Learn how to use Universal Windows Platform (UWP) page transitions to give users feedback about the relationship between pages in your app.
44
template: detail.hbs
5-
ms.date: 09/24/2020
5+
ms.date: 10/29/2025
66
ms.topic: how-to
7-
keywords: windows 10, uwp
8-
pm-contact: stmoy
97
ms.localizationpriority: medium
108
ms.custom: RS5
119
---
1210
# Page transitions
1311

1412
Page transitions navigate users between pages in an app, providing feedback as the relationship between pages. Page transitions help users understand if they are at the top of a navigation hierarchy, moving between sibling pages, or navigating deeper into the page hierarchy.
1513

16-
Two different animations are provided for navigation between pages in an app, *Page refresh* and *Drill*, and are represented by subclasses of [**NavigationTransitionInfo**](/uwp/api/windows.ui.xaml.media.animation.navigationtransitioninfo).
14+
Two different animations are provided for navigation between pages in an app, *Page refresh* and *Drill*, and are represented by subclasses of [**NavigationTransitionInfo**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.navigationtransitioninfo).
1715

18-
## Examples
16+
> [!div class="checklist"]
17+
>
18+
> - **Important APIs**: [NavigationTransitionInfo class](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.navigationtransitioninfo), [EntranceNavigationTransitionInfo class](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.entrancenavigationtransitioninfo), [DrillInNavigationTransitionInfo class](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.drillinnavigationtransitioninfo), [SuppressNavigationTransitionInfo class](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.suppressnavigationtransitioninfo)
1919
20-
<table>
21-
<th align="left">WinUI 2 Gallery<th>
22-
<tr>
23-
<td><img src="images/xaml-controls-gallery-app-icon.png" alt="WinUI Gallery" width="168"></img></td>
24-
<td>
25-
<p>If you have the <strong>WinUI 2 Gallery</strong> app installed, click here to <a href="winui2gallery:/item/PageTransition">open the app and see Page Transitions in action</a>.</p>
26-
<ul>
27-
<li><a href="https://apps.microsoft.com/detail/9MSVH128X2ZT">Get the WinUI 2 Gallery app (Microsoft Store)</a></li>
28-
<li><a href="https://github.com/Microsoft/WinUI-Gallery">Get the source code (GitHub)</a></li>
29-
</ul>
30-
</td>
31-
</tr>
32-
</table>
20+
> [!div class="nextstepaction"]
21+
> [Open the WinUI 3 Gallery app and see Implicit Transitions in action](winui3gallery://item/PageTransition)
22+
23+
[!INCLUDE [winui-3-gallery](../../../includes/winui-3-gallery.md)]
3324

3425
## Page refresh
3526

@@ -39,15 +30,16 @@ The desired feeling is that the user has started over.
3930

4031
![page refresh animation](images/page-refresh.gif)
4132

42-
The page refresh animation is represented by the [**EntranceNavigationTransitionInfoClass**](/uwp/api/windows.ui.xaml.media.animation.entrancenavigationtransitioninfo).
33+
The page refresh animation is represented by the [**EntranceNavigationTransitionInfo**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.entrancenavigationtransitioninfo) class.
4334

4435
```csharp
45-
// Explicitly play the page refresh animation
36+
// Explicitly play the page refresh animation.
4637
myFrame.Navigate(typeof(Page2), null, new EntranceNavigationTransitionInfo());
4738

4839
```
4940

50-
**Note**: A [**Frame**](/uwp/api/windows.ui.xaml.controls.frame) automatically uses [**NavigationThemeTransition**](/uwp/api/windows.ui.xaml.media.animation.navigationthemetransition) to animate navigation between two pages. By default, the animation is page refresh.
41+
> [!NOTE]
42+
> A [**Frame**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.frame) automatically uses [**NavigationThemeTransition**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.navigationthemetransition) to animate navigation between two pages. By default, the animation is page refresh.
5143
5244
## Drill
5345

@@ -57,10 +49,10 @@ The desired feeling is that the user has gone deeper into the app.
5749

5850
![drill animation](images/drill.gif)
5951

60-
The drill animation is represented by the [**DrillInNavigationTransitionInfo**](/uwp/api/windows.ui.xaml.media.animation.drillinnavigationtransitioninfo) class.
52+
The drill animation is represented by the [**DrillInNavigationTransitionInfo**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.drillinnavigationtransitioninfo) class.
6153

6254
```csharp
63-
// Play the drill in animation
55+
// Play the drill in animation.
6456
myFrame.Navigate(typeof(Page2), null, new DrillInNavigationTransitionInfo());
6557
```
6658

@@ -71,19 +63,19 @@ Use horizontal slide to show that sibling pages appear next to each other. The [
7163
The desired feeling is that the user is navigating between pages that are next to each other.
7264

7365
```csharp
74-
// Navigate to the right, ie. from LeftPage to RightPage
66+
// Navigate to the right, ie. from LeftPage to RightPage.
7567
myFrame.Navigate(typeof(RightPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromRight } );
7668

77-
// Navigate to the left, ie. from RightPage to LeftPage
69+
// Navigate to the left, ie. from RightPage to LeftPage.
7870
myFrame.Navigate(typeof(LeftPage), null, new SlideNavigationTransitionInfo() { Effect = SlideNavigationTransitionEffect.FromLeft } );
7971
```
8072

8173
## Suppress
8274

83-
To avoid playing any animation during navigation, use [**SuppressNavigationTransitionInfo**](/uwp/api/windows.ui.xaml.media.animation.suppressnavigationtransitioninfo) in the place of other **NavigationTransitionInfo** subtypes.
75+
To avoid playing any animation during navigation, use [**SuppressNavigationTransitionInfo**](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.media.animation.suppressnavigationtransitioninfo) in the place of other **NavigationTransitionInfo** subtypes.
8476

8577
```csharp
86-
// Suppress the default animation
78+
// Suppress the default animation.
8779
myFrame.Navigate(typeof(Page2), null, new SuppressNavigationTransitionInfo());
8880
```
8981

@@ -98,4 +90,4 @@ This can be useful when you modify navigation behavior dynamically based on scre
9890
## Related topics
9991

10092
- [Navigate between two pages](../basics/navigate-between-two-pages.md)
101-
- [Motion in UWP apps](index.md)
93+
- [Motion in Windows](index.md)

0 commit comments

Comments
 (0)