博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

wpf 实现窗口淡入

Posted on 2012-02-14 11:23  十一郞  阅读(390)  评论(0编辑  收藏  举报

利用wpf的动画功能实现窗口的淡入。

app.xaml

<Application x:Class="EnergeMonitorEVK.App"              xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"              xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"              StartupUri="MainWindow.xaml">     <Application.Resources>                 <Style x:Key="windowOpacity" TargetType="{x:Type Window}">             <Style.Triggers>                 <EventTrigger RoutedEvent="Window.Loaded">                                                             <BeginStoryboard>                         <Storyboard>                             <DoubleAnimation Storyboard.TargetProperty="Opacity"                                             From="0.0" To="1.0" Duration="0:0:1"/>                         </Storyboard>                     </BeginStoryboard>                                                    </EventTrigger>                            </Style.Triggers>         </Style>
</Application.Resources> </Application>

然后在你的window的xaml代码中添加如下代码

Style="{StaticResource windowOpacity}"

在窗口启动的时候就可以看到淡入的效果。在上述代码中的 Duration="0:0:1"表示代码持续时间为1秒,如果需要调整,自己修改。

我想在Style.Triggers中添加如下代码:

<EventTrigger RoutedEvent="Window.Closing">                                                            <BeginStoryboard>                         <Storyboard>                             <DoubleAnimation Storyboard.TargetProperty="Opacity"                                             From="1.0" To="0.0" Duration="0:0:1"                                             />                         </Storyboard>                     </BeginStoryboard>                                                   </EventTrigger>  

来实现淡出的效果,但是一运行就出错。不知道为何,高手指点。