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
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 bu 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şaretlemede Storyboard veya BeginStoryboard öğesini oluşturur ve sonra bunları bir öğeye EventTrigger içeriği olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. bir Storyboard denetim özelliklerinin çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
isControllable
, parametresini kullanmayan imzalar için veya bu parametre false
belirtildiğinde, 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. Bir animasyonu denetlemek için görsel şeridin 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 bu 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şaretlemede Storyboard veya BeginStoryboard öğesini oluşturur ve sonra bunları bir öğeye EventTrigger içeriği olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. bir Storyboard denetim özelliklerinin çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
isControllable
, parametresini kullanmayan imzalar için veya bu parametre false
belirtildiğinde, 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. Bir animasyonu denetlemek için görsel şeridin x:Name Yönergesi olması veya kodda başvuru ile erişilebilir olması gerekir.
İletim davranışı BeginStoryboardözniteliği olarak belirtilebilir.
Compose HandoffBehavior Kullanma
Compose HandoffBehaviorkullanarak bir özelliğe Storyboard, AnimationTimelineveya AnimationClock uyguladığınızda, daha önce bu özellikle ilişkilendirilmiş tüm Clock nesneleri sistem kaynaklarını kullanmaya devam eder; zamanlama sistemi saatleri otomatik olarak kaldırmaz.
Composekullanarak çok fazla sayıda saat uyguladığınızda performans sorunlarını önlemek için, animasyonlu özellik tamamlandıktan sonra oluşturma saatlerini kaldırmanız gerekir. Saati kaldırmanın birkaç yolu vardır:
Bir özellikten tüm saatleri kaldırmak için animasyonlu nesnenin ApplyAnimationClock(DependencyProperty, AnimationClock) veya BeginAnimation(DependencyProperty, AnimationTimeline) yöntemini kullanın. Animasyonlu özelliği ilk parametre olarak,
null
ikinci parametre olarak belirtin. Bu, özelliğinden tüm animasyon saatlerini kaldırır.Belirli bir AnimationClock saat listesinden kaldırmak için, AnimationClockController özelliğini kullanarak ClockControlleralın ve ClockControllerRemove yöntemini çağırın. Bu genellikle bir saat için Completed olay işleyicisinde yapılır. Yalnızca kök saatlerin bir ClockControllertarafından denetlenebileceğini unutmayın; alt saatin Controller özelliği
null
döndürür. Saatin geçerlilik süresi sonsuza kadar ise Completed olayının tetiklenmediğini de unutmayın. Bu durumda, kullanıcının Removene zaman çağrıldığını belirlemesi 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şaretlemede Storyboard veya BeginStoryboard öğesini oluşturur ve sonra bunları bir öğeye EventTrigger içeriği olarak yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. bir Storyboard denetim özelliklerinin çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
isControllable
, parametresini kullanmayan imzalar için veya bu parametre false
belirtildiğinde, 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. Bir animasyonu denetlemek için görsel şeridin x:Name Yönergesi olması veya kodda başvuru ile erişilebilir olması gerekir.
İletim davranışı BeginStoryboardözniteliği olarak belirtilebilir.
Compose HandoffBehavior Kullanma
Compose HandoffBehaviorkullanarak bir özelliğe Storyboard, AnimationTimelineveya AnimationClock uyguladığınızda, daha önce bu özellikle ilişkilendirilmiş tüm Clock nesneleri sistem kaynaklarını kullanmaya devam eder; zamanlama sistemi saatleri otomatik olarak kaldırmaz.
Composekullanarak çok fazla sayıda saat uyguladığınızda performans sorunlarını önlemek için, animasyonlu özellik tamamlandıktan sonra oluşturma saatlerini kaldırmanız gerekir. Saati kaldırmanın birkaç yolu vardır:
Bir özellikten tüm saatleri kaldırmak için animasyonlu nesnenin ApplyAnimationClock(DependencyProperty, AnimationClock) veya BeginAnimation(DependencyProperty, AnimationTimeline) yöntemini kullanın. Animasyonlu özelliği ilk parametre olarak,
null
ikinci parametre olarak belirtin. Bu, özelliğinden tüm animasyon saatlerini kaldırır.Belirli bir AnimationClock saat listesinden kaldırmak için, AnimationClockController özelliğini kullanarak ClockControlleralın ve ClockControllerRemove yöntemini çağırın. Bu genellikle bir saat için Completed olay işleyicisinde yapılır. Yalnızca kök saatlerin bir ClockControllertarafından denetlenebileceğini unutmayın; alt saatin Controller özelliği
null
döndürür. Saatin geçerlilik süresi sonsuza kadar ise Completed olayının tetiklenmediğini de unutmayın. Bu durumda, kullanıcının Removene zaman çağrıldığını belirlemesi 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ış.