如何为窗口设置动画?

时间:2009-04-16 04:17:09

标签: wpf animation c#-3.0

使用WPF,如何设置Window的位置动画。我试图简单地为Left / Top属性设置动画,但它不起作用。有人知道吗?

谢谢!

3 个答案:

答案 0 :(得分: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>

答案 1 :(得分: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>

答案 2 :(得分:0)

也许你可以尝试使用Expression Blend为它添加一个StoryBoard。 您可以控制在Blend中更改Window属性的TimeLine,只需激活.cs代码中的动画。