Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les transitions implicites animent automatiquement les modifications apportées à des propriétés UIElement spécifiques. Au lieu d’écrire du code d’animation explicite, vous attachez un objet de transition à une propriété et WinUI 3 anime toutes les modifications de valeur en douceur.
WinUI 3 fournit trois classes de transition :
| Classe de transition | Anime |
|---|---|
ScalarTransition |
Opacity, Rotation |
Vector3Transition |
Scale, Translation |
BrushTransition |
Background; Foreground sur les éléments qui exposent ForegroundTransition (par exemple, TextBlock) |
Animer les modifications d’opacité
Attachez une ScalarTransition à la OpacityTransition propriété pour animer les modifications d’opacité :
<Rectangle x:Name="MyRect" Width="80" Height="80" Opacity="1.0">
<Rectangle.OpacityTransition>
<ScalarTransition />
</Rectangle.OpacityTransition>
</Rectangle>
Lorsque vous changez MyRect.Opacity de code, WinUI 3 anime automatiquement la modification :
MyRect.Opacity = 0.2; // Animates from 1.0 to 0.2
Animer les changements de rotation
Attachez une ScalarTransition à la RotationTransition propriété :
<Rectangle x:Name="MyRect" Width="80" Height="80">
<Rectangle.RotationTransition>
<ScalarTransition />
</Rectangle.RotationTransition>
</Rectangle>
// Read ActualWidth/ActualHeight in Loaded or SizeChanged — they are 0 until layout runs.
private void MyRect_Loaded(object sender, RoutedEventArgs e)
{
MyRect.CenterPoint = new System.Numerics.Vector3(
(float)MyRect.ActualWidth / 2,
(float)MyRect.ActualHeight / 2,
0f);
MyRect.Rotation = 90; // Animates to 90 degrees
}
Animer les changements d’échelle
Attachez une Vector3Transition à la ScaleTransition propriété :
<Rectangle x:Name="MyRect" Width="80" Height="80">
<Rectangle.ScaleTransition>
<Vector3Transition />
</Rectangle.ScaleTransition>
</Rectangle>
MyRect.Scale = new System.Numerics.Vector3(1.5f, 1.5f, 1.0f); // Animates scale up
Animer les modifications de traduction
Attachez une Vector3Transition à la TranslationTransition propriété :
<Rectangle x:Name="MyRect" Width="80" Height="80">
<Rectangle.TranslationTransition>
<Vector3Transition />
</Rectangle.TranslationTransition>
</Rectangle>
MyRect.Translation = new System.Numerics.Vector3(100, 0, 0); // Moves 100px right
Animer les modifications de la brosse d’arrière-plan
Associez une BrushTransition à la propriété BackgroundTransition d’un panneau ou de ContentPresenter :
<ContentPresenter x:Name="MyPresenter" Width="80" Height="80" Background="Blue">
<ContentPresenter.BackgroundTransition>
<BrushTransition />
</ContentPresenter.BackgroundTransition>
</ContentPresenter>
// Animate from Blue to Yellow when the background is replaced with a new brush
MyPresenter.Background = new SolidColorBrush(Colors.Yellow);
Note
BrushTransition s’anime entre deux instances de pinceau distinctes. La définition d’une nouvelle couleur sur l’objet existant SolidColorBrush ne déclenche pas la transition. Affectez un nouvel SolidColorBrush objet pour déclencher l’animation.
Configurer la durée de transition
Par défaut, les transitions utilisent une durée définie par la plateforme. Vous pouvez le remplacer par la Duration propriété :
<Rectangle.OpacityTransition>
<ScalarTransition Duration="0:0:0.5" />
</Rectangle.OpacityTransition>
La valeur Duration est un(e) TimeSpan au format hours:minutes:seconds, avec des secondes fractionnaires facultatives (par exemple, 0:0:0.5 pour 500 ms).
Ouvrir la galerie WinUI 3
L’application Galerie WinUI 3 inclut des exemples interactifs de la plupart des contrôles et fonctionnalités WinUI 3.
Articles connexes
Windows developer