【问题标题】:WPF SplashScreen using external imageWPF SplashScreen 使用外部图像
【发布时间】:2015-07-01 14:23:03
【问题描述】:

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

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

【问题讨论】:

    标签: c# wpf splash-screen


    【解决方案1】:

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

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

    准备就绪后,让您的主窗口首先启动启动画面。让它加载您需要的所有内容,然后显示主窗口并关闭启动屏幕窗口。

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

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

    【讨论】:

      【解决方案2】:

      我认为这不能随心所欲,但是,可以创建一个单独的程序集,可以随时更改,其中包含资源,使用:

      SpashScreen(Assembly, string);

      【讨论】:

      • 有没有办法在 VS 之外更改程序集?
      • 是的。程序集被编译成 .dll 文件。只要您将 .dll 替换为另一个具有相同名称和相同资源字符串名称的有效 .dll,只需复制并替换文件,它就会更改图像。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 1970-01-01
      • 2011-01-17
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      相关资源
      最近更新 更多