2009-04-16 25 views
5

使用WPF,我如何設置窗口位置的動畫。我試圖簡單地爲Left/Top屬性設置動畫,但它不起作用。有人知道如何?如何動畫一個窗口?

謝謝!

回答

9

只需爲您要設置動畫的窗口創建一個Storyboard。

下面是一個窗口名爲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中窗口屬性的TimeLine,並只需在.cs代碼中激活動畫。

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>