加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

WPF启动动画Splash

(2014-04-23 16:53:06)

首先在工程中加入一张启动界面要显示的图片(例如:界面.jpg),在工程中选中图片右键--》属性,如下图

http://pic002.cnblogs.com/images/2012/337335/2012011815182280.png

将生成操作一栏设置成 SplashSrceen即可。

如果想要更多的设置,可以在app.xaml.cs中重写OnStartUp函数。

代码片段如下:


public partial class App : Application
    {
        protected override void OnStartup(StartupEventArgs e)
        {
            SplashScreen s = new SplashScreen("界面1,jpg");
           //显示初始屏幕 自动关闭设置false
            s.Show(false);
            //在3秒后关闭
            s.Close(new TimeSpan(0, 0, 3));
            base.OnStartup(e);
        }
    }

=================

WPF应用程序的启动画面[Splash Screen本质分析]

 

不经意间发现了wpf的这个小玩意,感觉蛮有意思的。

我在项目中添加了一张图片 如图:

http://pic002.cnblogs.com/images/2011/281227/2011120920443037.png

然后再这张图片的属性中设置它的生成操作为SplashScreen 如图:

http://pic002.cnblogs.com/images/2011/281227/2011120920451357.png

之后f5启动程序,你会发现在你主程序启动之前会出现一个0.5秒的动画,当然这个是默认的,您可以通过程序来进行对它的控制。

博友心声:怎么控制呢?

DebugLZQ:首先让我们看看这个过程到底发生了什么,用Reflector反编译PE文件如下:

http://pic002.cnblogs.com/images/2011/281227/2011120921471626.png

从上面的il代码可以很直观地看出来,其实它是先实例化了一个SplashScreen,然后调用了它的Show方法而已。

如果是这样的话,我们当然也可以自己写代码来实现,MSDN文档关于SplashScreen的描述地址为:http://msdn.microsoft.com/zh-tw/library/cc647682.aspx 查阅相关的方法,如下:

http://pic002.cnblogs.com/images/2011/281227/2011120921543262.png

则我们可以通过提过如下实现:

首先,让我们将图片的生成操作修改为“嵌入的资源”

http://pic002.cnblogs.com/images/2011/281227/2011120921565320.png

然后是编码实现,完整代码如下:


///

    /// App.xaml 的交互逻辑

    ///

    public partial class App : Application

    {        

        protected override void OnStartup(StartupEventArgs e)

        {        

            SplashScreen s = new SplashScreen("DebugLZQ.JPG");

            s.Show(false);

            s.Close(new TimeSpan(0, 0, 10));


            base.OnStartup(e);

        }

    }


0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有