WPF SplashScreen 使用外部图像

WPF SplashScreen using external image

我需要从硬盘驱动器制作我的 SplashScreen 显示图像(因为我将使用多个图像,这些图像可能会在项目外更改)。但是 WPF SplashScreen 只接受出现在这个或另一个程序集中的资源文件。

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

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

SpashScreen(Assembly, string);

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

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

准备就绪后,让主 window 启动启动画面,这是它做的第一件事。让它加载你需要的一切,然后显示主 window 并关闭启动画面 window.

这样您就可以完全控制您的 "splash screen",因为它只是您正在加载的另一个 window。

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