Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Implicitní přechody automaticky animují změny konkrétních vlastností UIElement. Místo psaní explicitního animačního kódu připojíte objekt přechodu k vlastnosti a WinUI 3 hladce animuje všechny změny hodnot.
WinUI 3 poskytuje tři třídy přechodu:
| Třída přechodu | Animuje |
|---|---|
ScalarTransition |
Opacity, Rotation |
Vector3Transition |
Scale, Translation |
BrushTransition |
Background; Foreground na prvcích, které zpřístupňují ForegroundTransition (například TextBlock) |
Animace změn neprůhlednosti
Připojte ScalarTransition k vlastnosti OpacityTransition, aby se animovaly změny průhlednosti:
<Rectangle x:Name="MyRect" Width="80" Height="80" Opacity="1.0">
<Rectangle.OpacityTransition>
<ScalarTransition />
</Rectangle.OpacityTransition>
</Rectangle>
Když změníte MyRect.Opacity kód, WinUI 3 tuto změnu automaticky animuje:
MyRect.Opacity = 0.2; // Animates from 1.0 to 0.2
Animace změn otočení
Připojte prvek ScalarTransition k vlastnosti RotationTransition:
<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
}
Animace změn měřítka
Připojte Vector3Transition k vlastnosti ScaleTransition:
<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
Animace změn překladu
Připojte objekt Vector3Transition k vlastnosti TranslationTransition:
<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
Animovat změny štětce na pozadí
Připojte BrushTransition k vlastnosti BackgroundTransition panelu nebo 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 animuje mezi dvěma samostatnými instancemi štětce. Nastavení nové barvy u existujícího SolidColorBrush objektu neaktivuje přechod. Přiřaďte nový SolidColorBrush objekt, který aktivuje animaci.
Konfigurace doby trvání přechodu
Přechody ve výchozím nastavení používají dobu definovanou platformou. Můžete ho přepsat pomocí vlastnosti Duration:
<Rectangle.OpacityTransition>
<ScalarTransition Duration="0:0:0.5" />
</Rectangle.OpacityTransition>
Hodnota Duration je TimeSpan ve formátu hours:minutes:secondss volitelnými desetinnými sekundami (například 0:0:0.5 pro 500 ms).
Otevření galerie WinUI 3
Aplikace Galerie WinUI 3 obsahuje interaktivní příklady většiny ovládacích prvků a funkcí WinUI 3.
Související články
Windows developer