Skip to content

Commit 0c9f8dd

Browse files
Merge pull request #5940 from MicrosoftDocs/main
Auto Publish – main to live - 2025-11-01 05:04 UTC
2 parents 5c1ebd0 + 2e879db commit 0c9f8dd

21 files changed

Lines changed: 1982 additions & 533 deletions

hub/apps/design/controls/scroll-controls.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ title: Scroll viewer controls
44
ms.assetid: 1BFF0E81-BF9C-43F7-95F6-EFC6BDD5EC31
55
label: Scrollbars
66
template: detail.hbs
7-
ms.date: 02/26/2025
7+
ms.date: 10/31/2025
88
ms.topic: how-to
99
doc-status: Published
1010
ms.localizationpriority: medium
@@ -28,6 +28,8 @@ Depending on the situation, the scroll viewer's scrollbar uses two different vis
2828

2929
> [!IMPORTANT]
3030
> WinUI 3 has two different scroll viewer controls available: [ScrollViewer](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.scrollviewer) and [ScrollView](/windows/windows-app-sdk/api/winrt/microsoft.ui.xaml.controls.scrollview). Whenever we speak generically about _scroll viewer_ controls, the information applies to both controls.
31+
>
32+
> The `ScrollView` control is similar in behavior and usage to the `ScrollViewer` control, but is based on [InteractionTracker](/windows/windows-app-sdk/api/winrt/microsoft.ui.composition.interactions.interactiontracker), has new features such as animation-driven view changes, and is designed to ensure full functionality with [ItemsRepeater](items-repeater.md).
3133
3234
## Scrolling, panning, and zooming
3335

@@ -41,8 +43,8 @@ Use a scroll viewer control to allow _scrolling_, _panning_, and _zooming_ of yo
4143

4244
The scrollbar is conscious of the user's input method and uses it to determine which visualization to display.
4345

44-
* When the region is scrolled without manipulating the scrollbar directly, for example, by touch, the panning indicator appears, displaying the current scroll position.
45-
* When the mouse or pen cursor moves over the panning indicator, it morphs into the traditional scrollbar. Dragging the scrollbar thumb manipulates the scrolling region.
46+
- When the region is scrolled without manipulating the scrollbar directly, for example, by touch, the panning indicator appears, displaying the current scroll position.
47+
- When the mouse or pen cursor moves over the panning indicator, it morphs into the traditional scrollbar. Dragging the scrollbar thumb manipulates the scrolling region.
4648

4749
:::image type="content" source="images/conscious-scroll.gif" alt-text="An animation that shows the scroll bar transform from the narrow panning indicator to the traditional thumb when the cursor moves over it.":::
4850

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)