FrameworkElement.BeginStoryboard Metoda
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
Rozpoczyna sekwencję akcji zawartych w dostarczonej scenorysie.
Przeciążenia
BeginStoryboard(Storyboard) |
Rozpoczyna sekwencję akcji zawartych w podanym scenorysie. |
BeginStoryboard(Storyboard, HandoffBehavior) |
Rozpoczyna sekwencję akcji zawartych w podanym scenorysie z opcjami określonymi dla tego, co powinno się zdarzyć, jeśli właściwość jest już animowana. |
BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Rozpoczyna sekwencję akcji zawartych w udostępnionym scenorysie z określonym stanem kontroli nad animacją po jej uruchomieniu. |
BeginStoryboard(Storyboard)
Rozpoczyna sekwencję akcji zawartych w podanym scenorysie.
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
Scenorys do rozpoczęcia.
Przykłady
Poniższy przykład pobiera Storyboard z zasobów, a następnie uruchamia Storyboard, gdy obsłużone jest zdarzenie wewnętrzne.
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
Uwagi
Większość typowych scenariuszy animacji nie używa tej metody. Zazwyczaj należy utworzyć element Storyboard lub BeginStoryboard w adiustacji, a następnie umieścić je jako zawartość EventTrigger elementu. Po wyzwoleniu przez zdarzenie animacja zostanie uruchomiona. Większość aspektów kontroli Storyboard można rozwiązać za pomocą właściwości uwidocznionych w adiustacji.
W przypadku podpisów, które nie używają isControllable
, parametru lub gdy ten parametr jest określony false
, zegary osi czasu skojarzone z animacją są usuwane, gdy animacja osiągnie okres "Wypełnienie". W związku z tym nie można ponownie uruchomić animacji po uruchomieniu raz. Kontrolowanie animacji wymaga również, aby scenorys miał dyrektywy x:Name lub być dostępny za pomocą odwołania w kodzie.
Dotyczy
BeginStoryboard(Storyboard, HandoffBehavior)
Rozpoczyna sekwencję akcji zawartych w podanym scenorysie z opcjami określonymi dla tego, co powinno się zdarzyć, jeśli właściwość jest już animowana.
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
Scenorys do rozpoczęcia.
- handoffBehavior
- HandoffBehavior
Wartość wyliczenia opisującego zachowanie do użycia, jeśli właściwość opisana w scenorysie jest już animowana.
Przykłady
Poniższy przykład pobiera Storyboard z zasobów, a następnie uruchamia Storyboard, gdy obsłużone jest zdarzenie wewnętrzne.
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
Uwagi
Większość typowych scenariuszy animacji nie używa tej metody. Zazwyczaj należy utworzyć element Storyboard lub BeginStoryboard w adiustacji, a następnie umieścić je jako zawartość EventTrigger elementu. Po wyzwoleniu przez zdarzenie animacja zostanie uruchomiona. Większość aspektów kontroli Storyboard można rozwiązać za pomocą właściwości uwidocznionych w adiustacji.
W przypadku podpisów, które nie używają isControllable
, parametru lub gdy ten parametr jest określony false
, zegary osi czasu skojarzone z animacją są usuwane, gdy animacja osiągnie okres "Wypełnienie". W związku z tym nie można ponownie uruchomić animacji po uruchomieniu raz. Kontrolowanie animacji wymaga również, aby scenorys miał dyrektywy x:Name lub być dostępny za pomocą odwołania w kodzie.
Zachowanie przekazywania można określić jako atrybut BeginStoryboard.
Korzystanie z narzędzia Compose HandoffBehavior
W przypadku zastosowania Storyboard, AnimationTimelinelub AnimationClock do właściwości przy użyciu ComposeHandoffBehaviorwszystkie obiekty Clock skojarzone wcześniej z tą właściwością nadal zużywają zasoby systemowe; system chronometrażu nie usuwa zegarów automatycznie.
Aby uniknąć problemów z wydajnością podczas stosowania dużej liczby zegarów przy użyciu Compose, należy usunąć tworzenie zegarów z animowanej właściwości po zakończeniu. Istnieje kilka sposobów usunięcia zegara:
Aby usunąć wszystkie zegary z właściwości, użyj metody ApplyAnimationClock(DependencyProperty, AnimationClock) lub BeginAnimation(DependencyProperty, AnimationTimeline) animowanego obiektu. Określ właściwość, która jest animowana jako pierwszy parametr, a
null
jako drugą. Spowoduje to usunięcie wszystkich zegarów animacji z właściwości .Aby usunąć określone AnimationClock z listy zegarów, użyj właściwości ControllerAnimationClock, aby pobrać ClockController, a następnie wywołaj metodę RemoveClockController. Zazwyczaj odbywa się to w programie obsługi zdarzeń Completed zegara. Należy pamiętać, że tylko zegary główne mogą być kontrolowane przez ClockController; właściwość Controller zegara podrzędnego zwraca wartość
null
. Należy również pamiętać, że zdarzenie Completed nie jest wywoływane, jeśli obowiązujący czas trwania zegara jest na zawsze. W takim przypadku użytkownik musi określić, kiedy wywołać Remove.
Jest to przede wszystkim problem z animacjami obiektów, które mają długi okres istnienia. Gdy obiekt jest wyrzucany, jego zegary są również odłączane i wyrzucane śmieci.
Aby uzyskać więcej informacji na temat obiektów zegara, zobacz Animacja i System chronometrażu — omówienie.
Dotyczy
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Rozpoczyna sekwencję akcji zawartych w udostępnionym scenorysie z określonym stanem kontroli nad animacją po jej uruchomieniu.
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
Scenorys do rozpoczęcia.
- handoffBehavior
- HandoffBehavior
Wartość wyliczenia opisującego zachowanie do użycia, jeśli właściwość opisana w scenorysie jest już animowana.
- isControllable
- Boolean
Deklaruje, czy animacja można kontrolować (można ją wstrzymać) po jej uruchomieniu.
Uwagi
Większość typowych scenariuszy animacji nie używa tej metody. Zazwyczaj należy utworzyć element Storyboard lub BeginStoryboard w adiustacji, a następnie umieścić je jako zawartość EventTrigger elementu. Po wyzwoleniu przez zdarzenie animacja zostanie uruchomiona. Większość aspektów kontroli Storyboard można rozwiązać za pomocą właściwości uwidocznionych w adiustacji.
W przypadku podpisów, które nie używają isControllable
, parametru lub gdy ten parametr jest określony false
, zegary osi czasu skojarzone z animacją są usuwane, gdy animacja osiągnie okres "Wypełnienie". W związku z tym nie można ponownie uruchomić animacji po uruchomieniu raz. Kontrolowanie animacji wymaga również, aby scenorys miał dyrektywy x:Name lub być dostępny za pomocą odwołania w kodzie.
Zachowanie przekazywania można określić jako atrybut BeginStoryboard.
Korzystanie z narzędzia Compose HandoffBehavior
W przypadku zastosowania Storyboard, AnimationTimelinelub AnimationClock do właściwości przy użyciu ComposeHandoffBehaviorwszystkie obiekty Clock skojarzone wcześniej z tą właściwością nadal zużywają zasoby systemowe; system chronometrażu nie usuwa zegarów automatycznie.
Aby uniknąć problemów z wydajnością podczas stosowania dużej liczby zegarów przy użyciu Compose, należy usunąć tworzenie zegarów z animowanej właściwości po zakończeniu. Istnieje kilka sposobów usunięcia zegara:
Aby usunąć wszystkie zegary z właściwości, użyj metody ApplyAnimationClock(DependencyProperty, AnimationClock) lub BeginAnimation(DependencyProperty, AnimationTimeline) animowanego obiektu. Określ właściwość, która jest animowana jako pierwszy parametr, a
null
jako drugą. Spowoduje to usunięcie wszystkich zegarów animacji z właściwości .Aby usunąć określone AnimationClock z listy zegarów, użyj właściwości ControllerAnimationClock, aby pobrać ClockController, a następnie wywołaj metodę RemoveClockController. Zazwyczaj odbywa się to w programie obsługi zdarzeń Completed zegara. Należy pamiętać, że tylko zegary główne mogą być kontrolowane przez ClockController; właściwość Controller zegara podrzędnego zwraca wartość
null
. Należy również pamiętać, że zdarzenie Completed nie jest wywoływane, jeśli obowiązujący czas trwania zegara jest na zawsze. W takim przypadku użytkownik musi określić, kiedy wywołać Remove.
Jest to przede wszystkim problem z animacjami obiektów, które mają długi okres istnienia. Gdy obiekt jest wyrzucany, jego zegary są również odłączane i wyrzucane śmieci.
Aby uzyskać więcej informacji na temat obiektów zegara, zobacz Animacja i System chronometrażu — omówienie.