FrameworkElement.BeginStoryboard Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Zahájí posloupnost akcí obsažených v poskytnutém scénáři.
Přetížení
BeginStoryboard(Storyboard) |
Zahájí posloupnost akcí, které jsou obsaženy v poskytnutém scénáři. |
BeginStoryboard(Storyboard, HandoffBehavior) |
Začne posloupnost akcí obsažených v poskytnutém scénáři se zadanými možnostmi pro to, co by se mělo stát, pokud je vlastnost již animovaná. |
BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Zahájí posloupnost akcí obsažených v poskytnutém scénáři se zadaným stavem pro řízení animace po jejím spuštění. |
BeginStoryboard(Storyboard)
Zahájí posloupnost akcí, které jsou obsaženy v poskytnutém scénáři.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard -> unit
Public Sub BeginStoryboard (storyboard As Storyboard)
Parametry
- storyboard
- Storyboard
Scénář, který má začít.
Příklady
Následující příklad načte z prostředků a pak ho Storyboard spustí Storyboard , když je zpracována interní událost třídy.
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
Poznámky
Většina typických animačních scénářů tuto metodu nepoužívá. Obvykle vytvoříte Storyboard element nebo BeginStoryboard ve značkách a pak je umístíte jako EventTrigger obsah do elementu. Po aktivaci událostí se animace spustí. Většinu kontrolních aspektů objektu Storyboard lze vyřešit vlastnostmi, které jsou vystaveny ve značkách.
U podpisů, které nepoužívají isControllable
parametr , nebo při zadání false
parametru se hodiny časové osy přidružené k animaci odeberou, jakmile animace dosáhne období "Výplň". Proto animaci nelze po spuštění jednou restartovat. Řízení animace také vyžaduje, aby scénář měl direktivu x:Name nebo byl přístupný odkazem v kódu.
Platí pro
BeginStoryboard(Storyboard, HandoffBehavior)
Začne posloupnost akcí obsažených v poskytnutém scénáři se zadanými možnostmi pro to, co by se mělo stát, pokud je vlastnost již animovaná.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior)
Parametry
- storyboard
- Storyboard
Scénář, který má začít.
- handoffBehavior
- HandoffBehavior
Hodnota výčtu, která popisuje chování, které se má použít v případě, že vlastnost popsaná ve scénáři je již animované.
Příklady
Následující příklad načte z prostředků a pak ho Storyboard spustí Storyboard , když je zpracována interní událost třídy.
private void OnImage1Animate(object sender, RoutedEventArgs e)
{
Storyboard s;
s = (Storyboard)this.FindResource("RotateStoryboard");
this.BeginStoryboard(s);
}
Private Sub OnImage1Animate(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim s As Storyboard
s = CType(Me.FindResource("RotateStoryboard"), Storyboard)
Me.BeginStoryboard(s)
End Sub
Poznámky
Většina typických animačních scénářů tuto metodu nepoužívá. Obvykle vytvoříte Storyboard element nebo BeginStoryboard ve značkách a pak je umístíte jako EventTrigger obsah do elementu. Po aktivaci událostí se animace spustí. Většinu kontrolních aspektů objektu Storyboard lze vyřešit vlastnostmi, které jsou vystaveny ve značkách.
U podpisů, které nepoužívají isControllable
parametr , nebo při zadání false
parametru se hodiny časové osy přidružené k animaci odeberou, jakmile animace dosáhne období "Výplň". Proto animaci nelze po spuštění jednou restartovat. Řízení animace také vyžaduje, aby scénář měl direktivu x:Name nebo byl přístupný odkazem v kódu.
Chování při předávání lze zadat jako atribut BeginStoryboard.
Použití HandoffBehavior psaní
Když použijete Storyboardvlastnost , AnimationTimelinenebo AnimationClock na vlastnost pomocí ComposeHandoffBehavior, všechny Clock objekty dříve přidružené k této vlastnosti budou dál využívat systémové prostředky; časovací systém neodebere hodiny automaticky.
Chcete-li se vyhnout problémům s výkonem při použití velkého počtu hodin pomocí Composenástroje , měli byste po dokončení odebrat hodiny psaní z animované vlastnosti. Hodiny můžete odebrat několika způsoby:
Pokud chcete z vlastnosti odebrat všechny hodiny, použijte metodu ApplyAnimationClock(DependencyProperty, AnimationClock) nebo BeginAnimation(DependencyProperty, AnimationTimeline) animovaného objektu. Jako první parametr zadejte vlastnost, která se má oživovat, a
null
jako druhý parametr. Tím se z vlastnosti odeberou všechny hodiny animace.Chcete-li odebrat konkrétní AnimationClock ze seznamu hodin, použijte Controller vlastnost AnimationClock k načtení objektu ClockControllera pak volání Remove metody ClockController. To se obvykle provádí v obslužné rutině Completed události pro hodiny. Všimněte si, že pouze kořenové hodiny mohou být řízeny ; ClockControllerController vlastnost podřízených hodin vrátí
null
. Všimněte si také, že Completed událost není vyvolána, pokud je platná doba trvání hodin navždy. V takovém případě musí uživatel určit, kdy má volat Remove.
Jedná se především o problém u animací u objektů, které mají dlouhou životnost. Když je objekt uvolněn z paměti, jeho hodiny jsou také odpojeny a uvolněny.
Další informace o objektech hodin najdete v tématu Přehled systému animací a časování.
Platí pro
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Zahájí posloupnost akcí obsažených v poskytnutém scénáři se zadaným stavem pro řízení animace po jejím spuštění.
public:
void BeginStoryboard(System::Windows::Media::Animation::Storyboard ^ storyboard, System::Windows::Media::Animation::HandoffBehavior handoffBehavior, bool isControllable);
public void BeginStoryboard (System.Windows.Media.Animation.Storyboard storyboard, System.Windows.Media.Animation.HandoffBehavior handoffBehavior, bool isControllable);
member this.BeginStoryboard : System.Windows.Media.Animation.Storyboard * System.Windows.Media.Animation.HandoffBehavior * bool -> unit
Public Sub BeginStoryboard (storyboard As Storyboard, handoffBehavior As HandoffBehavior, isControllable As Boolean)
Parametry
- storyboard
- Storyboard
Scénář, který má začít.
- handoffBehavior
- HandoffBehavior
Hodnota výčtu, která popisuje chování, které se má použít v případě, že vlastnost popsaná ve scénáři je již animované.
- isControllable
- Boolean
Deklaruje, zda je animace po spuštění kontrolovatelná (může být pozastavena).
Poznámky
Většina typických animačních scénářů tuto metodu nepoužívá. Obvykle vytvoříte Storyboard element nebo BeginStoryboard ve značkách a pak je umístíte jako EventTrigger obsah do elementu. Po aktivaci událostí se animace spustí. Většinu kontrolních aspektů objektu Storyboard lze vyřešit vlastnostmi, které jsou vystaveny ve značkách.
U podpisů, které nepoužívají isControllable
parametr , nebo při zadání false
parametru se hodiny časové osy přidružené k animaci odeberou, jakmile animace dosáhne období "Výplň". Proto animaci nelze po spuštění jednou restartovat. Řízení animace také vyžaduje, aby scénář měl direktivu x:Name nebo byl přístupný odkazem v kódu.
Chování při předávání lze zadat jako atribut BeginStoryboard.
Použití HandoffBehavior psaní
Když použijete Storyboardvlastnost , AnimationTimelinenebo AnimationClock na vlastnost pomocí ComposeHandoffBehavior, všechny Clock objekty dříve přidružené k této vlastnosti budou dál využívat systémové prostředky; časovací systém neodebere hodiny automaticky.
Chcete-li se vyhnout problémům s výkonem při použití velkého počtu hodin pomocí Composenástroje , měli byste po dokončení odebrat hodiny psaní z animované vlastnosti. Hodiny můžete odebrat několika způsoby:
Pokud chcete z vlastnosti odebrat všechny hodiny, použijte metodu ApplyAnimationClock(DependencyProperty, AnimationClock) nebo BeginAnimation(DependencyProperty, AnimationTimeline) animovaného objektu. Jako první parametr zadejte vlastnost, která se má oživovat, a
null
jako druhý parametr. Tím se z vlastnosti odeberou všechny hodiny animace.Chcete-li odebrat konkrétní AnimationClock ze seznamu hodin, použijte Controller vlastnost AnimationClock k načtení objektu ClockControllera pak volání Remove metody ClockController. To se obvykle provádí v obslužné rutině Completed události pro hodiny. Všimněte si, že pouze kořenové hodiny mohou být řízeny ; ClockControllerController vlastnost podřízených hodin vrátí
null
. Všimněte si také, že Completed událost není vyvolána, pokud je platná doba trvání hodin navždy. V takovém případě musí uživatel určit, kdy má volat Remove.
Jedná se především o problém u animací u objektů, které mají dlouhou životnost. Když je objekt uvolněn z paměti, jeho hodiny jsou také odpojeny a uvolněny.
Další informace o objektech hodin najdete v tématu Přehled systému animací a časování.
Platí pro
Váš názor
https://aka.ms/ContentUserFeedback.
Připravujeme: V průběhu roku 2024 budeme postupně vyřazovat problémy z GitHub coby mechanismus zpětné vazby pro obsah a nahrazovat ho novým systémem zpětné vazby. Další informace naleznete v tématu:Odeslat a zobrazit názory pro