Frage

Nun, wie der Titel schon sagt:

ich ein Drehbuch haben, und ich will es die Animation ohne das Eingreifen des Codes zu starten. Der Grund für diese Forderung ist, dass ich Silverlight Embedded bin Targeting und ich bin zu faul, jetzt meine Anwendung als auch neu zu kompilieren. Und kommt, daran zu denken, wird es leichter sein, um die Animation zu ändern, nur in der Zukunft.

Does XAML haben eine Eigenschaft, um das Storyboard zum Laufen zu bringen, sobald die XAML Lasten?

War es hilfreich?

Lösung

Sie können das Loaded-Ereignis verwenden, das Storyboard starten

Siehe MSDN für ein Beispiel: Storyboard (Silverlight)

Nahm das Beispiel von MSDN:

<Canvas
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  <Rectangle
    x:Name="MyAnimatedRectangle"
    Width="100"
    Height="100"
    Fill="Blue">
    <Rectangle.Triggers>

      <!-- Animates the rectangle's opacity.
           This is the important part, the EventTrigger which will start our animation -->

      <EventTrigger RoutedEvent="Rectangle.Loaded">
        <BeginStoryboard>
          <Storyboard>
            <DoubleAnimation
              Storyboard.TargetName="MyAnimatedRectangle"
              Storyboard.TargetProperty="Opacity"
              From="1.0" To="0.0" Duration="0:0:5" AutoReverse="True" RepeatBehavior="Forever" />
          </Storyboard>
        </BeginStoryboard>
      </EventTrigger>
    </Rectangle.Triggers>
  </Rectangle>
</Canvas>

Das Objekt Rechteck hat Eigenschaften. In der Triggers-Eigenschaft definiert wir einen Eventtrigger, die feuern, wenn dieses Ereignis eintritt. Wir wählen das Rectangle.Loaded Ereignis, das heißt, es wird Feuer beim Laden;).

Wir fügen eine Begin Eigenschaft unser Drehbuch zu beginnen, und ein Storyboard hinzufügen. Diese Animation wird ein Double auf der Deckkraft-Eigenschaft verwenden, was bedeutet, dass in einer Dauer von 5 Sekunden der Opazität wird allmählich verblasst auf Null, und zurück (Autoreverse-Eigenschaft), und es wird diese immer (die RepeatBehaviour Eigenschaft) tun.

Andere Tipps

<UserControl x:Class="SOSMVVM.AniM11"
    xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' 
    xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'
    xmlns:d='http://schemas.microsoft.com/expression/blend/2008' 
    xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006' 
    mc:Ignorable='d' 
    d:DesignWidth='640' 
    d:DesignHeight='480'>


    <StackPanel Margin="5">
        <Rectangle Name="rect3" Fill="Blue" Margin="2" Width="20"
      Height="20" HorizontalAlignment="Left" />
        <Button Margin="2,20,0,0" HorizontalAlignment="Left"
      Content="Start Animations" Width="100">
            <Button.Triggers>
                <EventTrigger RoutedEvent="Button.Click">
                    <EventTrigger.Actions>
                        <BeginStoryboard>
                            <Storyboard>

                                <DoubleAnimation
                  Storyboard.TargetName="rect3" Storyboard.TargetProperty="Width"
                  From="20" To="400" Duration="0:0:10" SpeedRatio="0.5" />


                            </Storyboard>
                        </BeginStoryboard>
                    </EventTrigger.Actions>
                </EventTrigger>
            </Button.Triggers>
        </Button>
    </StackPanel>


</UserControl>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top