.Net 4.0 kullanarak bazı WPF denetimleri yapıyorum. LoadingPane olarak adlandırılan bu denetimlerden biri, ContentControl'den türetilen özel bir denetimdir. Bu Yükleme Parçası denetiminin tek işi, Isloading özelliği true olarak ayarlandığında içerdiği içerik üzerinde yarı saydam bir katman göstermektir. Isloading değeri değiştiğinde sönümleme yapmak için bazı animasyonlar kullanıyorum. Kaplama gösterildiğinde bir animasyon, bir elips çemberini döndürür.WPF Animasyon başlar ama çok geç gösterir
Şimdiye kadar çok iyi. Her şey çok güzel çalışıyor. Ama benim sorunum: Yükleme özelliğini true olarak ayarladığımda animasyon doğrudan gösterilmiyor. Yaklaşık yarım saniye sürüyor. Bu süre içinde, fade-in animasyonu zaten çalışıyor, böylece opaklık, tek adımda 0'dan 1'e etkili bir şekilde gidiyor. Daha sonra solma
<ControlTemplate.Triggers>
<Trigger Property="IsLoading"
Value="True">
<Trigger.EnterActions>
<RemoveStoryboard BeginStoryboardName="EndAnimateLoadingCanvas" />
<BeginStoryboard Name="AnimateLoadingCanvas">
<Storyboard FillBehavior="Stop">
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00"
Storyboard.TargetName="MyViewBoxje"
Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame Value="{x:Static Visibility.Visible}" />
</ObjectAnimationUsingKeyFrames>
<DoubleAnimation BeginTime="00:00:00"
Duration="00:00:00.5"
Storyboard.TargetName="MyViewBoxje"
Storyboard.TargetProperty="Opacity"
To="1" />
<DoubleAnimation BeginTime="00:00:00"
Duration="00:00:02"
Storyboard.TargetName="AnimatedRotateTransform"
Storyboard.TargetProperty="Angle"
From="360"
To="0"
RepeatBehavior="Forever" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
<Trigger.ExitActions>
<RemoveStoryboard BeginStoryboardName="AnimateLoadingCanvas" />
<BeginStoryboard Name="EndAnimateLoadingCanvas">
<Storyboard FillBehavior="Stop">
<DoubleAnimation BeginTime="00:00:00"
Duration="00:00:00.5"
Storyboard.TargetName="MyViewBoxje"
Storyboard.TargetProperty="Opacity"
To="0" />
<ObjectAnimationUsingKeyFrames BeginTime="00:00:00.5"
Storyboard.TargetName="MyViewBoxje"
Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame Value="{x:Static Visibility.Collapsed}" />
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</Trigger.ExitActions>
</Trigger>
</ControlTemplate.Triggers>
tuhaf şey, ben bir test penceresinde bu denetimi kullanın ve ben defalarca Yükleme onay kutusunu tıkladığınızda (ve animasyon tamamlanmadan önce):
İşte benim animasyon kod -in/fade-out animasyon çalışmasını beklediğim gibi çalışır.
Herkes yardımcı olabilir mi? Thanx önceden!
Aynı sorunu (farklı bir koşul altında da olsa) aldım. Yüklenen bir Silverlight uygulaması, animasyonu asla * ilk * saat göstermediğinde çalıştırdığım bir animasyon. Ancak müteakip yükler işe yaradı. Uygulamayı sonlandırmak ve tekrar başlatmak aynı davranışa sahip olurdum. Hiç bir cevap bulamadı +1 =) – Smudge202
Bounty ekledi, belki de bunun için bir cevap bulabiliriz. Özünde, asıl soru, yük atlama animasyonlarının nasıl atlanacağını, tercihen bir ilk zamanlayıcı olayını engelleyen bir tür geçici çözüm olmaksızın nasıl önleneceğini düşünüyorum. Smudge gibi – Smudge202
+1. SL ile aynı sorunları yaşıyor. –