.NET Silverlight

0

Oto moja prosta aplikacja

 <UserControl x:Class="fullscreen.MainPage"
   ...
...
    <UserControl.Resources>
        <Storyboard x:Name="bounce2">
            <DoubleAnimation Storyboard.TargetName="zdj"
                             Storyboard.TargetProperty="(Opacity)"
                             From="1" To="0" Duration="0:0:6">
            </DoubleAnimation>
        </Storyboard>
    </UserControl.Resources>
    <Canvas Height="410" Name="canvas1" Width="900" Background="White">
        <Image Canvas.Left="0" Canvas.Top="0" Height="410" Name="zdj" Stretch="Fill" Width="900"/>
    </Canvas>
</UserControl>

Tworzę sobie obrazek i tworze efekt 'zanikania'
w kodzie C# chcę po całkowitym zniknięciu podmienić obrazek na inny (tworzę taką animowaną galerię), robię to w następujący sposób:

  zdj.Source = new BitmapImage(new Uri("Images/aa.jpg", UriKind.Relative)); // inny obraz
            zdj.UpdateLayout(); // odświeżam powierzchnię

            bounce2.Begin(); // to jest od zanikania

            bounce2.Completed += new EventHandler(zamiana); // rzucam wyjątek jeśli animacja się skończyła   

Jednak to rozwiązanie ma takie wady, że gdy wskoczę do funkcji zamiana , która znów wykonuje podany wyżej kod dla jeszcze innego obrazu, to po kilku takich przewinięciach aplikacja się zawiesza.
Myślę że jest to spowodowane tym że po linijce rzucenia wyjątku, kod i tak dalej się wykonuje... tj. nakładają się na siebie animacje (co potem widać na stronce). Trochę zamieszałem, ale Ciężko to wyjaśnić.
Chcę zrobić coś takiego po prostu:

 if(animacja_skonczona) animuj kolejny obraz;
else
{
 czekaj dopoki się nie skończy;
} 

po prostu nie wiem jak spradzić czy animacja została zakończona.....
albo jakiś delay chociażby by się przydał.

0

"bounce2.Completed += new EventHandler(zamiana); // rzucam wyjątek jeśli animacja się skończyła "

co oznacza ze: rzucam wyjątek jeśli animacja się skończyła
wyjatki nie sluza do tego! sluza do poinformowania o niepozadanym dzialaniu, czy zakonczenie animacji jest bladnym dzialaniem czy niepozadanym?

za kazdym razem podpinasz sie pod zdarzenie Completed? jesli tak to sie nie dziwie efektom
nalezy podpiac sie pod nie tylko raz! jeden, one, ein, un, один

1 użytkowników online, w tym zalogowanych: 0, gości: 1