2009-04-16 7 views
5

WPFでは、ウィンドウの位置をどのようにアニメーション化するのですか? Left/Topプロパティを単純にアニメーション化しようとしましたが、うまくいきませんでした。誰がどのように知っていますか?ウィンドウをアニメーション化する方法は?

ありがとう!

答えて

9

アニメーション化しようとしているウィンドウのストーリーボードを作成するだけです。ここで

はW1という名前のウィンドウのための例です:

<Window.Triggers> 
    <EventTrigger RoutedEvent="Window.Loaded"> 
    <EventTrigger.Actions> 
     <BeginStoryboard> 
     <Storyboard BeginTime="0" Duration="Forever"> 
      <DoubleAnimation Storyboard.TargetName="w1" Storyboard.TargetProperty="(Window.Top)" From="0" To="300" AutoReverse="true" BeginTime="0:0:0" Duration="0:0:1" RepeatBehavior="Forever"/> 
      <DoubleAnimation Storyboard.TargetName="w1" Storyboard.TargetProperty="(Window.Left)" From="0" To="400" AutoReverse="true" BeginTime="0:0:0" Duration="0:0:2" RepeatBehavior="Forever"/> 
     </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger.Actions> 
    </EventTrigger> 
</Window.Triggers> 
0

Expression Blendを使用してStoryBoardを追加することもできます。 Blendでウィンドウのプロパティを変更し、.csコードでアニメーションをアクティブ化するだけのTimeLineを制御することができます。

7

ウィンドウが表示されている間これは、フェード効果を行います。

<Window.Triggers> 
    <EventTrigger RoutedEvent="Loaded"> 
     <BeginStoryboard> 
      <Storyboard Duration="00:00:3" Storyboard.TargetProperty="Opacity"> 
       <DoubleAnimation From="0" To="1"/> 
      </Storyboard> 
     </BeginStoryboard> 
    </EventTrigger> 
</Window.Triggers>