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

简介: 原文:WPF应用程序的启动画面[Splash Screen本质分析]  不经意间发现了wpf的这个小玩意,感觉蛮有意思的。我在项目中添加了一张图片 如图: wpf-1.JPG(10.73 K)2010-6-6 17:04:47 然后再这张图片的属性中设置它的生成操作为SplashScreen 如图: wpf-2.JPG(13.51 K)2010-6-6 17:04:47 之后f5启动程序,你会发现在你主程序启动之前会出现一个0.5秒的动画,当然这个是默认的,您可以通过程序来进行对它的控制。
原文: WPF应用程序的启动画面[Splash Screen本质分析]

 

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

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

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

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

博友心声:怎么控制呢?

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

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

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

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

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

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

/// <summary>
    /// App.xaml 的交互逻辑
    /// </summary>
    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文档:http://msdn.microsoft.com/zh-tw/library/cc647682.aspx):

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

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

 

目录
相关文章
|
前端开发 Ubuntu Linux
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
随着跨平台越来越流行,.net core支持跨平台至今也有好几年的光景了。但是目前基于.net的跨平台,大多数还是在使用B/S架构的跨平台上;至于C/S架构,大部分人可能会选择QT进行开发,或者很早之前还有一款Mono可以支持.NET开发者进行开发跨平台应用。
858 0
【.NET6+Avalonia】开发支持跨平台的仿WPF应用程序以及基于ubuntu系统的演示
|
C#
WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu)
原文:WPF 4 Ribbon 开发 之 应用程序菜单(Application Menu)      在上一篇中我们完成了快捷工具栏的开发,本篇将讲解应用程序菜单开发的相关内容。如下图所示,点击程序窗口左上角的记事本图标(Application Button)会显示出应用程序菜单(Application Menu)列表,列表中的按键即为软件的一些基本功能。
2115 0
|
8月前
|
C#
C#开源的虚拟桌宠模拟器,可以内置到任何WPF应用程序 - VPet
C#开源的虚拟桌宠模拟器,可以内置到任何WPF应用程序 - VPet
|
7月前
|
人工智能 C#
虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序
虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序
虚拟桌宠模拟器:VPet-Simulator,一个开源的桌宠软件, 可以内置到任何WPF应用程序
|
12月前
|
C#
4.使用代码和未经编译的XAML创建WPF应用程序
4.使用代码和未经编译的XAML创建WPF应用程序
58 0
|
12月前
|
C# C++ Windows
3.只使用代码创建WPF应用程序
3.只使用代码创建WPF应用程序
81 0
|
C# 虚拟化 UED
细数改善WPF应用程序性能的10大方法
原文:细数改善WPF应用程序性能的10大方法       WPF(Windows Presentation Foundation)应用程序在没有图形加速设备的机器上运行速度很慢是个公开的秘密,给用户的感觉是它太吃资源了,WPF程序的性能和硬件确实有很大的关系,越高档的机器性能越有优势。
1142 0
|
C#
WPF制作Logo,很爽,今后在应用程序中加入Logo轻松,省事!
原文:WPF制作Logo,很爽,今后在应用程序中加入Logo轻松,省事! 这是效果:XAML代码:                                                      ...
925 0
|
调度 C# Windows
WPF 线程:使用调度程序构建反应速度更快的应用程序
原文:WPF 线程:使用调度程序构建反应速度更快的应用程序 作者:Shawn Wildermuth 原文:http://msdn.
965 0
|
前端开发 C# 容器
WPF应用程序顶级标签一定是Window吗?
原文:WPF应用程序顶级标签一定是Window吗? WPF应用程序顶级标签一定是Window吗? 很多人误以为是。可是,答案却是否定的。
764 0