FrameworkElement.BeginStoryboard Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Sağlanan görsel taslakta yer alan eylemlerin sırasını başlatır.
Aşırı Yüklemeler
| Name | Description |
|---|---|
| BeginStoryboard(Storyboard) |
Sağlanan görsel taslakta yer alan eylemlerin sırasını başlatır. |
| BeginStoryboard(Storyboard, HandoffBehavior) |
Sağlanan görsel taslakta yer alan eylemlerin sırasını başlatır ve özellik zaten animasyonluysa ne olması gerektiği için belirtilen seçeneklerle başlar. |
| BeginStoryboard(Storyboard, HandoffBehavior, Boolean) |
Sağlanan görsel taslakta yer alan eylemlerin sırasını, başlatıldıktan sonra animasyonun denetimi için belirtilen durumla başlatır. |
BeginStoryboard(Storyboard)
Sağlanan görsel taslakta yer alan eylemlerin sırasını başlatır.
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)
Parametreler
- storyboard
- Storyboard
Başlamak için görsel taslak.
Örnekler
Aşağıdaki örnek kaynaklardan bir Storyboard alır ve bir iç olay sınıf işlendiğinde bunu Storyboard çalıştırır.
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
Açıklamalar
Çoğu tipik animasyon senaryosu bu yöntemi kullanmaz. Genellikle, işaretleme içinde veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları bir öğeye EventTrigger içerik olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. öğesinin denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllableimzalar için veya bu parametre belirtildiğinde false, animasyonla ilişkilendirilmiş zaman çizelgesi saatleri, animasyon "Dolgu" dönemine ulaşır ulaşmaz kaldırılır. Bu nedenle animasyon bir kez çalıştırıldıktan sonra yeniden başlatılamaz. Animasyonu denetlemek için görsel taslakta x:Name Yönergesi olması veya kodda başvuru ile erişilebilir olması gerekir.
Şunlara uygulanır
BeginStoryboard(Storyboard, HandoffBehavior)
Sağlanan görsel taslakta yer alan eylemlerin sırasını başlatır ve özellik zaten animasyonluysa ne olması gerektiği için belirtilen seçeneklerle başlar.
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)
Parametreler
- storyboard
- Storyboard
Başlamak için görsel taslak.
- handoffBehavior
- HandoffBehavior
Görsel taslakta açıklanan bir özellik zaten animasyonluysa kullanılacak davranışı açıklayan sabit listesi değeri.
Örnekler
Aşağıdaki örnek kaynaklardan bir Storyboard alır ve bir iç olay sınıf işlendiğinde bunu Storyboard çalıştırır.
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
Açıklamalar
Çoğu tipik animasyon senaryosu bu yöntemi kullanmaz. Genellikle, işaretleme içinde veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları bir öğeye EventTrigger içerik olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. öğesinin denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllableimzalar için veya bu parametre belirtildiğinde false, animasyonla ilişkilendirilmiş zaman çizelgesi saatleri, animasyon "Dolgu" dönemine ulaşır ulaşmaz kaldırılır. Bu nedenle animasyon bir kez çalıştırıldıktan sonra yeniden başlatılamaz. Animasyonu denetlemek için görsel taslakta x:Name Yönergesi olması veya kodda başvuru ile erişilebilir olması gerekir.
İletim davranışı özniteliği BeginStoryboardolarak belirtilebilir.
Compose HandoffBehavior Kullanma
kullanarakHandoffBehaviorCompose bir Storyboardözelliğe , AnimationTimelineveya AnimationClock uyguladığınızda, daha önce bu özellikle ilişkilendirilmiş tüm Clock nesneler sistem kaynaklarını kullanmaya devam eder; zamanlama sistemi saatleri otomatik olarak kaldırmaz.
kullanarak Composeçok sayıda saat uyguladığınızda performans sorunlarını önlemek için, oluşturma saatlerini tamamlandıktan sonra animasyonlu özellikten kaldırmanız gerekir. Saati kaldırmanın birkaç yolu vardır:
Bir özellikten tüm saatleri kaldırmak için animasyonlu nesnenin veya BeginAnimation(DependencyProperty, AnimationTimeline) yöntemini kullanınApplyAnimationClock(DependencyProperty, AnimationClock). Animasyonlu özelliğini ilk parametre olarak,
nullikinci parametre olarak belirtin. Bu, özelliğinden tüm animasyon saatlerini kaldırır.Belirli AnimationClock bir saati saat listesinden kaldırmak için özelliğini AnimationClock kullanarak Controller bir ClockControlleralın ve yöntemini çağırın RemoveClockController. Bu genellikle bir saat için olay işleyicisinde Completed yapılır. Yalnızca kök saatlerin bir ClockControllertarafından denetlenebileceğini unutmayın; Controller bir alt saatin özelliği döndürür
null. Ayrıca, saatin etkin süresi sonsuza kadar ise olayın tetiklenmediğini unutmayın Completed . Bu durumda, kullanıcının ne zaman çağrıldığını Removebelirlemesi gerekir.
Bu öncelikle yaşam süresi uzun olan nesnelerdeki animasyonlar için bir sorundur. Bir nesne çöp toplandığında, saatlerinin de bağlantısı kesilir ve çöp toplanır.
Saat nesneleri hakkında daha fazla bilgi için bkz. Animasyon ve Zamanlama Sistemine Genel Bakış.
Şunlara uygulanır
BeginStoryboard(Storyboard, HandoffBehavior, Boolean)
Sağlanan görsel taslakta yer alan eylemlerin sırasını, başlatıldıktan sonra animasyonun denetimi için belirtilen durumla başlatır.
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)
Parametreler
- storyboard
- Storyboard
Başlamak için görsel taslak.
- handoffBehavior
- HandoffBehavior
Görsel taslakta açıklanan bir özellik zaten animasyonluysa kullanılacak davranışı açıklayan sabit listesi değeri.
- isControllable
- Boolean
Animasyon başlatıldıktan sonra denetlenebilir (duraklatılabilir) olup olmadığını bildirir.
Açıklamalar
Çoğu tipik animasyon senaryosu bu yöntemi kullanmaz. Genellikle, işaretleme içinde veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları bir öğeye EventTrigger içerik olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. öğesinin denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllableimzalar için veya bu parametre belirtildiğinde false, animasyonla ilişkilendirilmiş zaman çizelgesi saatleri, animasyon "Dolgu" dönemine ulaşır ulaşmaz kaldırılır. Bu nedenle animasyon bir kez çalıştırıldıktan sonra yeniden başlatılamaz. Animasyonu denetlemek için görsel taslakta x:Name Yönergesi olması veya kodda başvuru ile erişilebilir olması gerekir.
İletim davranışı özniteliği BeginStoryboardolarak belirtilebilir.
Compose HandoffBehavior Kullanma
kullanarakHandoffBehaviorCompose bir Storyboardözelliğe , AnimationTimelineveya AnimationClock uyguladığınızda, daha önce bu özellikle ilişkilendirilmiş tüm Clock nesneler sistem kaynaklarını kullanmaya devam eder; zamanlama sistemi saatleri otomatik olarak kaldırmaz.
kullanarak Composeçok sayıda saat uyguladığınızda performans sorunlarını önlemek için, oluşturma saatlerini tamamlandıktan sonra animasyonlu özellikten kaldırmanız gerekir. Saati kaldırmanın birkaç yolu vardır:
Bir özellikten tüm saatleri kaldırmak için animasyonlu nesnenin veya BeginAnimation(DependencyProperty, AnimationTimeline) yöntemini kullanınApplyAnimationClock(DependencyProperty, AnimationClock). Animasyonlu özelliğini ilk parametre olarak,
nullikinci parametre olarak belirtin. Bu, özelliğinden tüm animasyon saatlerini kaldırır.Belirli AnimationClock bir saati saat listesinden kaldırmak için özelliğini AnimationClock kullanarak Controller bir ClockControlleralın ve yöntemini çağırın RemoveClockController. Bu genellikle bir saat için olay işleyicisinde Completed yapılır. Yalnızca kök saatlerin bir ClockControllertarafından denetlenebileceğini unutmayın; Controller bir alt saatin özelliği döndürür
null. Ayrıca, saatin etkin süresi sonsuza kadar ise olayın tetiklenmediğini unutmayın Completed . Bu durumda, kullanıcının ne zaman çağrıldığını Removebelirlemesi gerekir.
Bu öncelikle yaşam süresi uzun olan nesnelerdeki animasyonlar için bir sorundur. Bir nesne çöp toplandığında, saatlerinin de bağlantısı kesilir ve çöp toplanır.
Saat nesneleri hakkında daha fazla bilgi için bkz. Animasyon ve Zamanlama Sistemine Genel Bakış.