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é scénáře.
Přetížení
BeginStoryboard(Storyboard) |
Zahájí posloupnost akcí obsažených v poskytnuté scénáře. |
BeginStoryboard(Storyboard, HandoffBehavior) |
Zahájí posloupnost akcí obsažených v poskytnuté scénáře s možnostmi zadanými 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é scénáře se zadaným stavem pro kontrolu animace po jejím spuštění. |
BeginStoryboard(Storyboard)
Zahájí posloupnost akcí obsažených v poskytnuté scénáře.
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 Storyboard z prostředků a potom spustí Storyboard při zpracování interní události.
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 nebo BeginStoryboard prvek v kódu a pak je umístíte jako EventTrigger obsah na prvek. Při aktivaci událostí se animace spustí. Většinu kontrolních aspektů Storyboard je možné řešit vlastnostmi, které jsou vystaveny v kódu.
U podpisů, které nepoužívají isControllable
, parametru nebo pokud je tento parametr zadán false
, hodiny časové osy přidružené k animaci se 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 aby byl přístupný pomocí odkazu v kódu.
Platí pro
BeginStoryboard(Storyboard, HandoffBehavior)
Zahájí posloupnost akcí obsažených v poskytnuté scénáře s možnostmi zadanými 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, pokud je vlastnost popsaná ve scénáři již animované.
Příklady
Následující příklad načte Storyboard z prostředků a potom spustí Storyboard při zpracování interní události.
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 nebo BeginStoryboard prvek v kódu a pak je umístíte jako EventTrigger obsah na prvek. Při aktivaci událostí se animace spustí. Většinu kontrolních aspektů Storyboard je možné řešit vlastnostmi, které jsou vystaveny v kódu.
U podpisů, které nepoužívají isControllable
, parametru nebo pokud je tento parametr zadán false
, hodiny časové osy přidružené k animaci se 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 aby byl přístupný pomocí odkazu v kódu.
Chování předání lze zadat jako atribut BeginStoryboard.
Použití nástroje Compose HandoffBehavior
Při použití Storyboard, AnimationTimelinenebo AnimationClock na vlastnost pomocí ComposeHandoffBehavior, všechny objekty Clock dříve přidružené k této vlastnosti nadále využívat systémové prostředky; systém časování automaticky neodebere hodiny.
Abyste se vyhnuli problémům s výkonem při použití velkého počtu hodin pomocí Compose, měli byste po dokončení odebrat psaní hodin z animované vlastnosti. Hodiny můžete odebrat několika způsoby:
Chcete-li odebrat všechny hodiny z vlastnosti, použijte ApplyAnimationClock(DependencyProperty, AnimationClock) nebo BeginAnimation(DependencyProperty, AnimationTimeline) metodu animovaného objektu. Zadejte vlastnost, která se animuje jako první parametr, a
null
jako druhý. Tím se z vlastnosti odeberou všechny hodiny animace.Chcete-li odebrat konkrétní AnimationClock ze seznamu hodin, použijte vlastnost ControllerAnimationClock k načtení ClockControllera volání Remove metody ClockController. To se obvykle provádí v obslužné rutině události Completed hodiny. Všimněte si, že ClockControllerlze ovládat pouze kořenové hodiny; vlastnost Controller podřízených hodin vrací
null
. Všimněte si také, že Completed událost není vyvolána, pokud efektivní doba trvání hodin je navždy. V takovém případě musí uživatel určit, kdy volat Remove.
Jedná se především o problém s animacemi na objektech, které mají dlouhou životnost. Když je objekt uvolněn z paměti, jeho hodiny jsou také odpojeny a uvolňování paměti.
Další informace o objektech hodin naleznete v tématu Animace a časování systému Přehled.
Platí pro
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Zahájí posloupnost akcí obsažených v poskytnuté scénáře se zadaným stavem pro kontrolu 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, pokud je vlastnost popsaná ve scénáři již animované.
- isControllable
- Boolean
Deklaruje, jestli je animace po spuštění ovládatelná (lze ji pozastavit).
Poznámky
Většina typických animačních scénářů tuto metodu nepoužívá. Obvykle vytvoříte Storyboard nebo BeginStoryboard prvek v kódu a pak je umístíte jako EventTrigger obsah na prvek. Při aktivaci událostí se animace spustí. Většinu kontrolních aspektů Storyboard je možné řešit vlastnostmi, které jsou vystaveny v kódu.
U podpisů, které nepoužívají isControllable
, parametru nebo pokud je tento parametr zadán false
, hodiny časové osy přidružené k animaci se 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 aby byl přístupný pomocí odkazu v kódu.
Chování předání lze zadat jako atribut BeginStoryboard.
Použití nástroje Compose HandoffBehavior
Při použití Storyboard, AnimationTimelinenebo AnimationClock na vlastnost pomocí ComposeHandoffBehavior, všechny objekty Clock dříve přidružené k této vlastnosti nadále využívat systémové prostředky; systém časování automaticky neodebere hodiny.
Abyste se vyhnuli problémům s výkonem při použití velkého počtu hodin pomocí Compose, měli byste po dokončení odebrat psaní hodin z animované vlastnosti. Hodiny můžete odebrat několika způsoby:
Chcete-li odebrat všechny hodiny z vlastnosti, použijte ApplyAnimationClock(DependencyProperty, AnimationClock) nebo BeginAnimation(DependencyProperty, AnimationTimeline) metodu animovaného objektu. Zadejte vlastnost, která se animuje jako první parametr, a
null
jako druhý. Tím se z vlastnosti odeberou všechny hodiny animace.Chcete-li odebrat konkrétní AnimationClock ze seznamu hodin, použijte vlastnost ControllerAnimationClock k načtení ClockControllera volání Remove metody ClockController. To se obvykle provádí v obslužné rutině události Completed hodiny. Všimněte si, že ClockControllerlze ovládat pouze kořenové hodiny; vlastnost Controller podřízených hodin vrací
null
. Všimněte si také, že Completed událost není vyvolána, pokud efektivní doba trvání hodin je navždy. V takovém případě musí uživatel určit, kdy volat Remove.
Jedná se především o problém s animacemi na objektech, které mají dlouhou životnost. Když je objekt uvolněn z paměti, jeho hodiny jsou také odpojeny a uvolňování paměti.
Další informace o objektech hodin naleznete v tématu Animace a časování systému Přehled.