使用WPF,我如何动画化窗口的位置。我尝试简单地动画化Left/Top属性,但它没有起作用。有人知道怎么做吗?
谢谢!
谢谢!
窗口显示时会产生淡入效果:
<Window.Triggers>
<EventTrigger RoutedEvent="Loaded">
<BeginStoryboard>
<Storyboard Duration="00:00:3" Storyboard.TargetProperty="Opacity">
<DoubleAnimation From="0" To="1"/>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Window.Triggers>
只需为您想要动画化的窗口创建一个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>
DoubleAnimation
上设置Duration
属性,否则窗口会变成半透明。当然,为了改变不透明度并禁用默认的窗口边框,还需要设置AllowsTransparency="True"
和WindowStyle=None
。 - Tim Sylvester