Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az implicit átmenetek automatikusan animálják bizonyos UIElement-tulajdonságok változásait. Explicit animációs kód írása helyett egy áttűnési objektumot csatol egy tulajdonsághoz, és a WinUI 3 zökkenőmentesen animálja az értékváltozásokat.
A WinUI 3 három átmeneti osztályt biztosít:
| Átmeneti osztály | Animálja |
|---|---|
ScalarTransition |
Opacity, Rotation |
Vector3Transition |
Scale, Translation |
BrushTransition |
Background; Foreground azokon az elemeken, amelyek rendelkeznek ForegroundTransition-val (például TextBlock) |
Az átlátszatlanság változásának animálása
Csatoljon egy ScalarTransition tulajdonságot az OpacityTransition átlátszatlansági módosítások animálásához:
<Rectangle x:Name="MyRect" Width="80" Height="80" Opacity="1.0">
<Rectangle.OpacityTransition>
<ScalarTransition />
</Rectangle.OpacityTransition>
</Rectangle>
A kód módosításakor MyRect.Opacity a WinUI 3 automatikusan animálja a módosítást:
MyRect.Opacity = 0.2; // Animates from 1.0 to 0.2
Forgatási módosítások animálása
Csatolja a ScalarTransition tulajdonsághoz a RotationTransition következő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
}
Méretezési módosítások animálása
Csatolja a Vector3Transition tulajdonsághoz a ScaleTransition következő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
Fordítási módosítások animálása
Csatolja a Vector3Transition tulajdonsághoz a TranslationTransition következő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
Háttérkefe módosításainak animálása
Csatoljon egy BrushTransitionBackgroundTransition panel tulajdonságához vagy 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 két különálló ecsetpéldány között hoz létre animációt. A meglévő SolidColorBrush objektum új színének beállítása nem váltja ki az áttűnést. Rendeljen hozzá egy új SolidColorBrush objektumot az animáció aktiválásához.
Áttűnési időtartam konfigurálása
Alapértelmezés szerint az áttűnések platformalapú időtartamot használnak. Felülbírálhatja a Duration tulajdonsággal:
<Rectangle.OpacityTransition>
<ScalarTransition Duration="0:0:0.5" />
</Rectangle.OpacityTransition>
A(z) Duration érték egy TimeSpan, hours:minutes:seconds formátumban, opcionális másodperctörttel (például 0:0:0.5 az 500 ms esetén).
A WinUI 3 katalógus megnyitása
A WinUI 3 Katalógus alkalmazás interaktív példákat tartalmaz a WinUI 3 vezérlők és funkciók többségére.
Kapcsolódó cikkek
Windows developer