Aracılığıyla paylaş


Zamanlama Olaylarına Genel Bakış

Bu konu üzerinde beş zamanlama olayları nasıl açıklar Timeline ve Clock nesneler.

Prerequisites

Bu konuda anlamak için nasıl animasyonlar oluşturmak ve anlamanız gerekir. Animasyon ile başlamak için bkz: Animasyona Genel bakış.

İçinde özelliklerine animasyon uygulamak için birden çok yolu vardır WPF:

Bunları biçimlendirme ve kodu kullanabilirsiniz çünkü bu genel örnekler kullanmak Storyboard nesneler. Ancak, açıklanan kavramlar animasyon özelliklerini diğer yöntemler için uygulanabilir.

Bir saat nedir?

Bir zaman çizelgesi kendisi tarafından gerçekten bir şey yapamayacakları dışında bir zaman parçası açıklamak. Zaman Çizelgesi'nin ise Clock gerçek çalışma nesne: Bu zaman çizelgesi için zamanlama ile ilgili çalışma zamanı durumunu korur. Ne zaman kullanarak storyboards gibi birçok durumda, bir saat, zaman çizelgesi için otomatik olarak oluşturulur. Ayrıca oluşturabilirsiniz bir Clock açıkça kullanarak CreateClock yöntemi. For more information about Clock objects, see the Animasyon ve Zamanlama Sistemi Özeti.

Olaylar neden kullanılır?

Dışında bir (son ilerlemelerin hizalanmış arama), tüm etkileşimli zamanlama işlemi eşzamanlı değildir. Siz tam olarak ne zaman onlar yürütülür bilmek mümkün değildir. Planlama işleminizi bağımlı olan diğer kod varsa, bir sorun olabilir. Bir dikdörtgen animasyonlu bir zaman çizelgesi durdurmak istediğinizi varsayalım. Zaman Çizelgesi durdurulduktan sonra dikdörtgenin rengini değiştirin.

            myStoryboard.Stop(myRectangle)

            ' This statement might execute
            ' before the storyboard has stopped.
            myRectangle.Fill = Brushes.Blue
myStoryboard.Stop(myRectangle);

// This statement might execute
// before the storyboard has stopped.
myRectangle.Fill = Brushes.Blue;

Önceki örnekte, kodun ikinci satırı, film şeridi durdurulmadan önce çalıştırmak. Durdurma bir zaman uyumsuz işlem olmasıdır. Bir zaman çizelgesi ya da durdurma saati söyleyen "durdurma isteği" oluşturur Zamanlama altyapısının sonraki çentik kadar iþlenmez tür.

Bir zaman çizelgesi tamamlandıktan sonra komutları yürütmek için zamanlama olayları kullanın. Aşağıdaki örnekte, bir olay işleyicisi, film şeridi çalmayı durduracağını sonra dikdörtgenin rengini değiştirmek için kullanılır.

            ' Register for the CurrentStateInvalidated timing event.
            AddHandler myStoryboard.CurrentStateInvalidated, AddressOf myStoryboard_CurrentStateInvalidated
// Register for the CurrentStateInvalidated timing event.
myStoryboard.CurrentStateInvalidated += new EventHandler(myStoryboard_CurrentStateInvalidated);

Daha tam bir örnek için bkz: Nasıl Yapılır: Saatin Durumu Değiştiğinde Bildirim Alma.

Public Events

Timeline Ve Clock sınıflarının her ikisi de sağlayan beş zamanlama olayları. Aşağıdaki tablo bu olaylar ve bunları tetikleyecek koşulları listeler.

Event

Tetikleyici etkileşimli işlem

Diğer Tetikleyiciler

Completed

Doldurmak için Atla

Saatin tamamlar.

CurrentGlobalSpeedInvalidated

Duraklatma, sürdürme, arama, hızı oranını ayarlamak, Atla doldurmak için Durdur

Saatin ters çevirir hızlandırır başlatır veya durdurur.

CurrentStateInvalidated

Başlamak için atlamak doldurmak için Durdur

Saat, durdurur, başlatır veya doldurur.

CurrentTimeInvalidated

Başlamak için arama, Atla doldurmak için Durdur

Saat ilerler.

RemoveRequested

Remove

Ticking ve olay birleştirilir

Nesnelere animasyon ne zaman WPF, onu zamanlama altyapısı, yönetir, animasyonlar. Zamanlama altyapısı çözümlemesinin süreyi izler ve her animasyon durumunu hesaplar. Bir saniye içinde gibi birçok değerlendirme geçişlerini kolaylaştırır. Bu değerlendirme geçişleri "işaretleri" olarak bilinir

While ticks occur frequently, it's possible for a lot of things to happen between ticks. Örneğin, bir zaman çizelgesi durduruldu, başladı ve yeniden durdurulmuş durumda geçerli durumunu üç kez değişmiş. Teorik olarak, olay birden çok kez tek bir çentik Kabarık; Ancak, böylece her olay tick en fazla bir kez yükseltilebilir zamanlama altyapısı olayları birleştirir.

Olayları kaydediliyor

Zamanlama olayları kaydetmek için iki yol vardır: Zaman Çizelgesi'nden oluşturulan saat veya zaman çizelgesi ile kaydedebilirsiniz. Yalnızca kodundan yapılabilir, ancak bir saat ile doğrudan organizasyona oldukça, basittir. Olayların zaman çizelgesi biçimlendirme veya kod ile kaydedebilirsiniz. Sonraki bölümde, bir zaman çizelgesi ile saat olayları kaydetmek açıklar.

Bir zaman çizelgesi ile saat olayları kaydediliyor

Bir zaman çizelgesi rağmen 's Completed, CurrentGlobalSpeedInvalidated, CurrentStateInvalidated, CurrentTimeInvalidated, ve RemoveRequested olaylar görünür Bu olaylar aslında associates için bir olay işleyicisi ile kaydetme, zaman çizelgesi ile ilişkilendirilecek Clock oluşturulan zaman çizelgesi.

Ne zaman sizi kaydetmek için Completed bir Zaman Çizelgesi'ndeki olay, örneğin gerçekten söyleyen kaydetmek için sistem Completed her saat için zaman çizelgesi oluşturulan olay Önce bu olay için kaydettirmelisiniz kodda, Clock için bu zaman çizelgesi; oluşturuldu Aksi takdirde, bildirim almazsınız. Otomatik olarak bir de böyle XAML; Çözümleyici, önce olayı için otomatik olarak kaydeden Clock oluşturulur.

Ayrıca bkz.

Kavramlar

Animasyon ve Zamanlama Sistemi Özeti

Animasyona Genel bakış

Zamanlama Davranışlarına Genel Bakış