博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
WPF:如何为程序添加splashScreen?
阅读量:6690 次
发布时间:2019-06-25

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

原文:

大家是否还记得在Windows Forms程序中如何实现splashScreen吗?我们一般都会使用Microsoft.VisualBasic.dll中提供的那个WindowsFormsApplicationBase类型,它有一个所谓的splashscreen属性,可以指定为一个窗体的。

那么,同样的需求在WPF中如何实现呢?这要从两头来说,从简单来说,它实在是简单了。

事实上,这是.NET Framework 3.5sp1的一个特性

 

 

考虑到大部分的splashscreen其实都只是一个图片,所以最简单的做法是,先导入一张图片,然后设置它的生成操作为“splash screen”

注意,其他什么都不要做,此时运行程序的话,就可以看到效果

注意:虽然我们的图片是gif的格式,但显示出来的效果却是静态的。

 

那么,到底发生了什么,让他具有了这个特性呢?我们可以打开项目的文件,就是那个csproj文件

 

原来它是通过在项目文件中声明一个SplashScreen来实现的。

[注意]这个文件是给msbuild这个工具用的。

[思考]所以试想一下,一个应用程序是否可以有多个SplashScreen呢?

 

同时,我们还可以打开IL代码来了解一下,

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

如果是这样的话,我们当然也可以自己写代码来实现

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

然后通过下面的代码就可以实现功能

using System;using System.Collections.Generic;using System.Configuration;using System.Data;using System.Linq;using System.Windows;namespace WpfApplication1{    ///     /// App.xaml 的交互逻辑    ///     public partial class App : Application    {        protected override void OnStartup(StartupEventArgs e)        {            SplashScreen s = new SplashScreen("20080320132823923.gif");            s.Show(true);            base.OnStartup(e);        }    }}

值得一提的是,目前看来,也没有办法加载一个窗口作为SplashScreen。

如果希望闪屏至少显示多少时间,则可以考虑下面的代码

SplashScreen s = new SplashScreen("20080320132823923.gif");            s.Show(false);            s.Close(new TimeSpan(0, 0, 10));

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

你可能感兴趣的文章
php memcache保存session的一个设置误区
查看>>
鱼眼镜头
查看>>
闪光灯
查看>>
Scalatra
查看>>
CentOS 7 三者分离编译安装LAMP
查看>>
Linux内核调整,支持4000-8000并发
查看>>
jquery mobile 设置设备适配
查看>>
redis使用总结-redis命令总结
查看>>
创业浪潮:春天蓬勃而来
查看>>
阿里云Linux安装软件镜像源
查看>>
阿里云对象存储OSS支持版本管理特性
查看>>
用python 访问redis的几种常用方式
查看>>
SHARP MX-M261N需要维护的消除方法
查看>>
我的友情链接
查看>>
云原生生态周报 Vol. 6 | KubeCon EU 特刊
查看>>
mysqldump 多个表导出
查看>>
Linux Shell 基本概念及编程(5)
查看>>
RDBMS DBMS MS DB
查看>>
这个女孩一路走来--我的it,我的命
查看>>
Webbuilder Extjs中Combobox值选中注意事项
查看>>