C# 使用外部图像的WPF SplashScreen
我需要使我的SplashScreen显示硬盘上的图像(因为我将使用多个图像,这些图像可能会在项目之外更改)。但是WPF SplashScreen只接受存在于这个或另一个程序集中的资源文件C# 使用外部图像的WPF SplashScreen,c#,wpf,splash-screen,C#,Wpf,Splash Screen,我需要使我的SplashScreen显示硬盘上的图像(因为我将使用多个图像,这些图像可能会在项目之外更改)。但是WPF SplashScreen只接受存在于这个或另一个程序集中的资源文件 那么,我该怎么解决呢?也许,有什么方法可以在运行时创建临时资源文件?我不认为这可以按照您的意愿完成,但是,可以创建一个单独的程序集,您可以随时更改该程序集,该程序集将包含资源,使用: 我不认为这可以按照您的意愿完成,但是,可以创建一个单独的程序集,您可以随时更改该程序集,该程序集将包含资源,使用: 实现此目标的
那么,我该怎么解决呢?也许,有什么方法可以在运行时创建临时资源文件?我不认为这可以按照您的意愿完成,但是,可以创建一个单独的程序集,您可以随时更改该程序集,该程序集将包含资源,使用:
我不认为这可以按照您的意愿完成,但是,可以创建一个单独的程序集,您可以随时更改该程序集,该程序集将包含资源,使用:
实现此目标的最佳方法是根本不使用启动屏幕功能 创建一个新的XAML窗口,并将其大小调整为您希望启动屏幕的大小。然后,您可以使用引用您想要的图像。这也可以在加载时从代码隐藏中完成 准备好后,让主窗口第一件事就是启动启动屏幕。让它加载您需要的所有内容,然后显示主窗口并关闭启动屏幕窗口 这样,您就可以完全控制“启动屏幕”,因为它只是您正在加载的另一个窗口
这样做的一个缺点是它可能有一个非常小的(.5秒左右)延迟,因为WPF必须在窗口显示之前加载。实际的splashscreen不是WPF,因此它将立即显示。这对我来说从来都不是问题。实现这一目标的最佳方法是根本不使用闪屏功能 创建一个新的XAML窗口,并将其大小调整为您希望启动屏幕的大小。然后,您可以使用引用您想要的图像。这也可以在加载时从代码隐藏中完成 准备好后,让主窗口第一件事就是启动启动屏幕。让它加载您需要的所有内容,然后显示主窗口并关闭启动屏幕窗口 这样,您就可以完全控制“启动屏幕”,因为它只是您正在加载的另一个窗口
这样做的一个缺点是它可能有一个非常小的(.5秒左右)延迟,因为WPF必须在窗口显示之前加载。实际的splashscreen不是WPF,因此它将立即显示。这对我来说从来都不是问题。有没有办法在VS之外更改组件?是的。程序集被编译为.dll文件。只要将.dll替换为另一个具有相同名称和相同资源字符串名称的有效.dll,只要复制并替换该文件,它就会更改映像。是否有任何方法可以在VS之外更改程序集?是的。程序集被编译为.dll文件。只要将.dll替换为另一个具有相同名称和相同资源字符串名称的有效.dll,只需复制并替换该文件,它就会更改图像。