Wie zu stoppen WPF storyboard setzt sich nur in XAML

Ich habe eine animation in XAML definiert (wie ein UserControl), die im wesentlichen Schalter, die zwischen zwei Bildern in jeder Sekunde:

    <UserControl x:Class="KaleidoscopeApplication.Controls.RemoteAnimation"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Loaded="RemoteAnimation_Loaded"
    Unloaded="RemoteAnimation_Unloaded">

    <Grid Canvas.Left="500" Canvas.Top="84">
        <Grid.Triggers>
            <EventTrigger RoutedEvent="Grid.Loaded">
                <BeginStoryboard>
                    <Storyboard x:Name="storyboard"  RepeatBehavior="Forever">
                        <ObjectAnimationUsingKeyFrames Storyboard.TargetName="remote2" BeginTime="00:00:00" Storyboard.TargetProperty="(UIElement.Visibility)">
                            <DiscreteObjectKeyFrame KeyTime="0:0:1">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Collapsed</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                            <DiscreteObjectKeyFrame KeyTime="0:0:2">
                                <DiscreteObjectKeyFrame.Value>
                                    <Visibility>Visible</Visibility>
                                </DiscreteObjectKeyFrame.Value>
                            </DiscreteObjectKeyFrame>
                        </ObjectAnimationUsingKeyFrames>
                    </Storyboard>
                </BeginStoryboard>
            </EventTrigger>
        </Grid.Triggers>

        <Image Name="remote1" Source="/Resources/Elements/Images/341.png"/>
        <Image Name="remote2" Source="/Resources/Elements/Images/342.png"/>

    </Grid>

</UserControl>

Es kann verwendet werden, in einem Fenster wie folgt:

<!-- Remote -->
<uControl:RemoteAnimation 
     x:Name="remoteAnimation"
     Canvas.Left="316" Canvas.Top="156" Height="246" Width="121" />

Mein problem ist, dass wenn das Fenster mit der animation schließt, es läuft weiter und verursacht ein Leck. Ich bin nicht in der Lage, stoppen der animation über RemoteAnimation_Unloaded() mit storyboard.Stop()... es nicht tun, jack.

Habe ich ausgecheckt, können diese beiden Beiträge, aber Sie nicht anwenden:

Post1
Post2

Ich bin in der Lage, um in das entladen-Methode, aber das aufrufen der Stop() Stoppt nicht die animation. Aus meinem Verständnis kann es ein Problem mit einem Aufruf von Begin() für das storyboard. Es ist eine überlastung mit einem isControlable parameter. Da jedoch die animation ist komplett in XAML, ich bin mir nicht sicher, wie Sie Einfluss auf diese.

InformationsquelleAutor BabaBooey | 2011-03-22
Schreibe einen Kommentar