xaml dosyasında bir animasyon film şeridi oluşturdum. Bu hikaye panosu Button.Click'te başlıyor. Ancak animasyonu durdurmak için özel etkinlikteki storyboard'u arka planda kodda durdurmaya çalışıyorum. Kod herhangi bir istisna atmıyor, ancak etkinliğim tetiklendiğinde animasyon hala devam ediyor.WPF animasyonu durdur, storyboard xaml içinde başlıyor ama codebehind içinde mi duruyor?
Sorunun Durma yöntemiyle olduğunu düşünüyorum. Durdur, animasyonu durdurmak için başlayan aynı nesneyi gerektirir. Ama burada storyboard WPF xaml'de başlıyor ve ben de arkada kodda duruyorum.
Herhangi bir çözüm, nasıl Xaml nesnesini kod arkasında veya bunun için herhangi bir alternatif çözüm elde etmek için?
XAML KODU: Arkasında
<Canvas.Triggers>
<EventTrigger RoutedEvent="Button.Click" SourceName="ScanButton">
<EventTrigger.Actions>
<BeginStoryboard >
<Storyboard Name="MovingServer" Storyboard.TargetName="ImageMove" RepeatBehavior="Forever" >
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:2" From="30" To="300" BeginTime="0:0:0" />
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:5" From="300" To="300" BeginTime="0:0:5" />
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" Duration="0:0:2" From="300" To="600" BeginTime="0:0:7" />
<DoubleAnimation Storyboard.TargetProperty="Opacity" Duration="0:0:2" From="1" To="0" BeginTime="0:0:7" />
</Storyboard>
</BeginStoryboard>
</EventTrigger.Actions>
</EventTrigger>
Kodu:
private void EventPublisher_OnScanningFinish(object sender, EventArgs args)
{
Dispatcher.Invoke(DispatcherPriority.Normal, (Action)delegate() { this.StopScanningAnimation(); });
}
private void StopScanningAnimation()
{
ServerView.StoryBoardServerScrolling.Stop(this); //---------- Not Working
//this.ServerView.Server1Static.Visibility = System.Windows.Visibility.Hidden;
//this.ServerView.Server2Static.Visibility = System.Windows.Visibility.Hidden;
//this.ServerView.Server3Scrolling.Visibility = System.Windows.Visibility.Hidden;
//this.ServerView.SearchingGlass.Visibility = System.Windows.Visibility.Hidden;
}
Bunu test ettiniz mi? 'StaticResources'? 'Kaynaklar' demek istedin mi? X: Key'den ne haber? –
Çalıştığım örnek bir kod için sınayın, ancak şu anki gerçek kodum çok uzun, bu yüzden – PawanS
@ H.B alternatifleri için kullanıyorum. Üzgünüz, şu anda bu kodu test edemiyorum. StaticResources ile haklısınız, 'kaynaklar' olmalı, şu anda değiştireceğim. x: Anahtar; 'x:' kısmı isteğe bağlıdır –