Pregunta

Bueno, como sugiere el título:

Tengo un guión gráfico y lo quiero de animación para iniciar sin la intervención de código. La razón de este requisito es que yo estoy apuntando Silverlight Embedded y me da pereza en este momento para volver a compilar mi aplicación también. Y, llegando a pensar en él, será más fácil cambiar la animación sólo en el futuro.

¿El XAML tiene una propiedad para hacer funcionar el guión gráfico en cuanto las cargas xaml?

¿Fue útil?

Solución

Puede utilizar el evento Loaded para iniciar su guión gráfico

Ver MSDN para ver un ejemplo: Storyboard (Silverlight)

escogido el ejemplo de 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>

El objeto rectangular tiene propiedades. En la propiedad disparadores definimos un EventTrigger que se activará cuando se produzca este evento. Elegimos el evento Rectangle.Loaded, lo que significa que se disparará cuando se carga;).

Añadimos una propiedad BeginStoryboard para comenzar nuestro guión gráfico, y añadir un guión gráfico. Esta animación utilizará un DoubleAnimation en la propiedad de opacidad, lo que significa que en una duración de 5 segundos, la opacidad poco a poco se desvanecen a cero, y de vuelta (AutoReverse propiedad) y que va a hacer esto para siempre (la propiedad RepeatBehaviour).

Otros consejos

<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>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top