启动画面 IOException

本文关键字:IOException 动画 启动 | 更新日期: 2023-09-27 18:27:57

SplashScreen s = new SplashScreen(System.Reflection.Assembly.GetExecutingAssembly(),"splash.png");
s.Show(false);

当调用s.Show()参数是false还是true时,它会抛出一个IOException随着消息

找不到资源"飞溅.png

即使该启动.png被添加到资源中,并且其生成操作资源

我注意到在WPF中使用图像时存在许多问题,也使用Image控件。

启动画面 IOException

根据"我的代码不起作用,我不知道为什么。我的代码有效,我不知道为什么",我已经解决了这个问题。

首先,我将启动图像的构建操作作为资源。(将图像作为嵌入资源并不能解决问题(。

其次,我的代码是:

SplashScreen s = new SplashScreen("resources/splash.png");
s.Show(false);
/* do some things */
s.Close(Timespan.FromMilliseconds(300));

即使该启动.png被添加到资源中,并且其生成操作是资源。

错误的构建操作,使其Embedded Resource. 如果仍有问题,请使用 ildasm.exe 查看 .mresource 指令的程序集清单,以确保资源已正确嵌入预期名称。

或者按照操作方法步骤使用文件。 通常是更理智的方法,因为当在程序开始时只需要很短的时间时,在程序的生命周期内占用大量资源占用地址空间没有多大意义。

尝试显式指定程序集名称,即使调用方与资源位于同一程序集中也是如此。

下面是它使用 Pack URI 语法的外观:

pack://application:,,,/MyAssemblyName;component/MyResourcesFolder/MyImage.png

http://msdn.microsoft.com/en-us/library/aa970069.aspx