博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF应用程序的启动画面[Splash Screen本质分析]
阅读量:6209 次
发布时间:2019-06-21

本文共 916 字,大约阅读时间需要 3 分钟。

原文:

 

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

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

(10.73 K)
2010-6-6 17:04:47

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

(13.51 K)
2010-6-6 17:04:47

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

博友心声:怎么控制呢?

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

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

如果是这样的话,我们当然也可以自己写代码来实现,MSDN文档关于SplashScreen的描述地址为: 查阅相关的方法,如下:

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

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

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

///     /// 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);        }    }

  注意事项(来自MSDN,具体请参考MSDN文档:):

1.在部分信任中無法使用 SplashScreen 類別。

2.SplashScreen 類別不能用於 XAML 瀏覽器應用程式 (XBAP) 中,因為這些應用程式使用不同的啟動架構。

 

转载地址:http://zgzja.baihongyu.com/

你可能感兴趣的文章
51、YUM安装配置LAMP、phpMyAdmin实战
查看>>
Yeslab现任明教教主ISE课程前七部分免费发布
查看>>
linux下恢复误删文件
查看>>
Universal-Image-Loader,android-Volley,Picasso、Fresco和Glide开源组件加载网络图片的优缺点比较...
查看>>
RAID的肤浅认识
查看>>
poxtfix+dovecot+saslauthd+courier-authlib +mysql + extmail 完整虚拟邮箱系统部署
查看>>
Erlang并发机制 –进程调度
查看>>
XEN--转载自鸟哥的linux私房菜
查看>>
我的第一程序语言python
查看>>
DHCP服务开启了,为什么老是网络冲突
查看>>
跳出多重循环 JS
查看>>
MySql 自动更新时间为当前时间
查看>>
Configuring Aggregated Ethernet Interfaces
查看>>
我的友情链接
查看>>
我的友情链接
查看>>
Asp.net页面和Html页面之间的关系
查看>>
[故障解决]Mysql爆出ERROR 1044 (42000)的错误怎么办?
查看>>
MySQL之数据库对象查看工具mysqlshow
查看>>
关于大学生玩网络游戏的调查问卷
查看>>
ubuntu安装nodejs
查看>>