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

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

WPF应用程序的启动画面[Splash Screen本质分析]wpf-1.JPG(10.73 K)
2010-6-6 17:04:47

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

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

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

WPF应用程序的启动画面[Splash Screen本质分析]wpf-2.JPG(13.51 K)
2010-6-6 17:04:47

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

博友心声:怎么控制呢?

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

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

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

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

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

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

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

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

然后是编码实现,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) 中,因為這些應用程式使用不同的啟動架構。

 

相关文章:

  • 2021-05-24
  • 2021-06-10
  • 2022-12-23
  • 2022-12-23
  • 2021-07-23
  • 2022-12-23
  • 2021-10-17
猜你喜欢
  • 2021-11-22
  • 2021-06-30
  • 2021-12-22
  • 2021-09-24
  • 2022-01-13
  • 2021-05-23
  • 2022-12-23
相关资源
相似解决方案