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ğiyle ilgili seçenekler belirtilir. |
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şaretlemede veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları içerik olarak bir öğeye EventTrigger yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllable
imzalar için veya bu parametre belirtildiğinde false
, animasyonla ilişkili 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ı da 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ğiyle ilgili seçenekler belirtilir.
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şaretlemede veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları içerik olarak bir öğeye EventTrigger yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllable
imzalar için veya bu parametre belirtildiğinde false
, animasyonla ilişkili 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ı da gerekir.
İletim davranışı özniteliği BeginStoryboardolarak belirtilebilir.
HandoffBehavior.Compose Özelliğini 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 fazla sayıda saat uyguladığınızda performans sorunlarını önlemek için, saat oluşturma işlemini 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 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.Saat listesinden belirli AnimationClock bir değeri 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 geçerlilik süresi sonsuza kadar ise olayın tetiklenmediğini unutmayın Completed . Bu durumda, kullanıcının çağrısının Removene zaman gerektiğini belirlemesi gerekir.
Bu öncelikle uzun ömürlü nesnelerdeki animasyonlar için bir sorundur. Bir nesne çöp toplandığında, saatlerinin 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 veya BeginStoryboard öğesini oluşturur Storyboard ve sonra bunları içerik olarak bir öğeye EventTrigger yerleştirirsiniz. Olay tarafından tetiklendiğinde animasyon çalıştırılır. denetim özelliklerinin Storyboard çoğu, işaretlemede kullanıma sunulan özellikler tarafından ele alınabilir.
, parametresini kullanmayan isControllable
imzalar için veya bu parametre belirtildiğinde false
, animasyonla ilişkili 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ı da gerekir.
İletim davranışı özniteliği BeginStoryboardolarak belirtilebilir.
HandoffBehavior.Compose Özelliğini 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 fazla sayıda saat uyguladığınızda performans sorunlarını önlemek için, saat oluşturma işlemini 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 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.Saat listesinden belirli AnimationClock bir değeri 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 geçerlilik süresi sonsuza kadar ise olayın tetiklenmediğini unutmayın Completed . Bu durumda, kullanıcının çağrısının Removene zaman gerektiğini belirlemesi gerekir.
Bu öncelikle uzun ömürlü nesnelerdeki animasyonlar için bir sorundur. Bir nesne çöp toplandığında, saatlerinin 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
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin