使用外部图像的WPF SplashScreen

时间:2015-07-01 14:23:04

标签: c# wpf splash-screen

我需要让我的SplashScreen显示来自硬盘的图像(因为我将使用多个图像,这些图像可能会在项目之外更改)。但是WPF SplashScreen只接受存在于此程序集或其他程序集中的资源文件。

那么,我该如何解决呢?也许,有一些方法可以在运行时创建临时资源文件吗?

2 个答案:

答案 0 :(得分:1)

我不认为这可以按照您的意愿完成,但是,可以创建一个单独的程序集,可以随时更改,包含资源,使用:

SpashScreen(Assembly, string);

答案 1 :(得分:1)

实现此目标的最佳方法是根本不使用启动画面功能。

创建一个新的XAML窗口,并将其大小调整为您希望启动画面的大小。然后,您可以使用它来引用您想要的图像。这也可以在加载时从代码隐藏完成。

准备好后,让主窗口启动启动画面,这是它的第一件事。让它加载你需要的一切,然后显示主窗口并关闭启动画面窗口。

通过这种方式,您可以完全控制“启动画面”,因为它只是您正在加载的另一个窗口。

这样做的一个缺点是它可能有一个非常小的(.5秒左右)延迟,因为WPF必须在窗口显示之前加载。实际的启动画面不是WPF,因此会立即显示。这对我来说从来都不是问题。