35

長方形を無限に回転させるようにXAMLを定義するにはどうすればよいですか?

これまでのところ、コードはあるがxamlがないソリューションを見つけました:http: //www.codeproject.com/Articles/23257/Beginner-s-WPF-Animation-Tutorial これは次のように使用します:

private void Window_Loaded_1(object sender, RoutedEventArgs e)
{
    var doubleAnimation = new DoubleAnimation(360, 0, new Duration(TimeSpan.FromSeconds(1)));
    var rotateTransform = new RotateTransform();
    
    rect1.RenderTransform = rotateTransform;
    rect1.RenderTransformOrigin = new Point(0.5, 0.5);
    doubleAnimation.RepeatBehavior = RepeatBehavior.Forever;
    
    rotateTransform.BeginAnimation(RotateTransform.AngleProperty, doubleAnimation);
}

しかし、XAMLのみでこれを達成するにはどうすればよいですか?

4

1 に答える 1

70

このようなもの

<Rectangle x:Name="rect1" RenderTransformOrigin="0.5, 0.5">
  <Rectangle.RenderTransform>
    <!-- giving the transform a name tells the framework not to freeze it -->
    <RotateTransform x:Name="noFreeze" />
  </Rectangle.RenderTransform>
  <Rectangle.Triggers>
    <EventTrigger RoutedEvent="Loaded">
      <BeginStoryboard>
        <Storyboard>
          <DoubleAnimation
            Storyboard.TargetProperty="(Rectangle.RenderTransform).(RotateTransform.Angle)"
            To="-360" Duration="0:0:1" RepeatBehavior="Forever" />
        </Storyboard>
      </BeginStoryboard>
    </EventTrigger>
  </Rectangle.Triggers>
</Rectangle>

もちろん、Loadedトリガーを削除して、いつでもこのストーリーボードを実行できます。

于 2012-09-06T10:43:10.887 に答える