1

私のWPFアプリには、次のようなアニメーションがあります。

a。TextBlockを000から090に回転します
。b。TextBlockのTextプロパティを新しい値に更新します
c。TextBlockを090から180まで回転させ続けます。

StoryBoardの子に2つのDoubleAnimationsを追加することで、手順aとcを実行できます。最初のアニメーションの終わりをトラップして作業を行う方法はありますか?

ありがとう。

4

3 に答える 3

3

[.NETFramework4.5以降の場合]

StringAnimationUsingKeyFramesクラスを使用して、DiscreteStringKeyFrameを使用してテキストを変更できます。以下はです。

<Button Name="myAnimatedButton" Margin="200"
      FontSize="16pt" FontFamily="Verdana">Some Text
      <Button.Triggers>
        <EventTrigger RoutedEvent="Button.Click">
          <BeginStoryboard>
            <Storyboard>
              <StringAnimationUsingKeyFrames 
                Storyboard.TargetName="myAnimatedButton" Storyboard.TargetProperty="(Button.Content)"
                Duration="0:0:8" FillBehavior="HoldEnd">

                <!-- All the key frames below are DiscreteStringKeyFrames. Discrete key frames create 
                sudden "jumps" between values (no interpolation). Only discrete key frames can be used 
                for String key frame animations. -->
                <DiscreteStringKeyFrame Value="" KeyTime="0:0:0" />
                <DiscreteStringKeyFrame Value="A" KeyTime="0:0:1" />
                <DiscreteStringKeyFrame Value="An" KeyTime="0:0:1.5" />
                <DiscreteStringKeyFrame Value="Ani" KeyTime="0:0:2" />
                <DiscreteStringKeyFrame Value="Anim" KeyTime="0:0:2.5" />
                <DiscreteStringKeyFrame Value="Anima" KeyTime="0:0:3" />
                <DiscreteStringKeyFrame Value="Animat" KeyTime="0:0:3.5" />
                <DiscreteStringKeyFrame Value="Animate" KeyTime="0:0:4" />
                <DiscreteStringKeyFrame Value="Animated" KeyTime="0:0:4.5" />
                <DiscreteStringKeyFrame Value="Animated " KeyTime="0:0:5" />
                <DiscreteStringKeyFrame Value="Animated T" KeyTime="0:0:5.5" />
                <DiscreteStringKeyFrame Value="Animated Te" KeyTime="0:0:6" />
                <DiscreteStringKeyFrame Value="Animated Tex" KeyTime="0:0:6.5" />
                <DiscreteStringKeyFrame Value="Animated Text" KeyTime="0:0:7" />
              </StringAnimationUsingKeyFrames>              
            </Storyboard>
          </BeginStoryboard>
        </EventTrigger> 
      </Button.Triggers>
    </Button>

.NETFrameworkのアニメーションコレクションへの最新の追加に感謝します。

于 2017-10-06T03:24:30.180 に答える
2

BooleanAnimationUsingKeyFramesを追加し、それを使用して値を設定できます。

http://msdn.microsoft.com/en-us/library/ms745819.aspx

于 2012-07-03T14:26:13.030 に答える
1

2つのストーリーボードを作成できます。1つは90に回転し、もう1つは180に回転します。最初のストーリーボードが完了したら、テキストを更新してから、次のストーリーボードを開始します。

Storyboard rotateTo90 = new Storyboard();
// Add rotate animation
rotateTo90.Completed += (s,e) => 
    { 
         TextBlock1.Text = "Updated";
         Storyboard rotateTo180 = new Storyboard();
         // Add rotate animation
         rotateTo180.Begin();
    };
rotateTo90.Begin();
于 2012-07-03T21:40:54.550 に答える