[英]SplashScreen IOException
SplashScreen s = new SplashScreen(System.Reflection.Assembly.GetExecutingAssembly(),"splash.png");
s.Show(false);
在调用s.Show()
无论参数是false
还是true
,它都会抛出带有消息的IOException
找不到资源'splash.png'
即使将splash.png添加到资源中,其Build Action也是Resource 。
我在WPF中使用图像时也发现了许多问题,也使用了Image
控件。
根据原则“我的代码不起作用,我不知道为什么。我的代码工作,我不知道为什么”,我已经解决了这个问题。
首先,我将启动图像的构建操作设置为资源 。 (将图像作为嵌入式资源放置并没有解决问题)。
第二,我的代码是:
SplashScreen s = new SplashScreen("resources/splash.png");
s.Show(false);
/* do some things */
s.Close(Timespan.FromMilliseconds(300));
即使将splash.png添加到资源中,其Build Action也是Resource。
错误的构建操作,使其成为Embedded Resource
。 如果仍有问题,请使用ildasm.exe查看.mresource指令的程序集清单,以确保资源正确嵌入了预期名称。
或者按照这些操作步骤使用文件。 一般来说,这是一种更理智的方法,因为当程序开始时只需要很短的时间就可以使大量资源占用程序生命周期的地址空间。
尝试显式指定程序集名称,即使调用程序与资源位于同一程序集中。
以下是使用Pack URI语法的外观:
pack://application:,,,/MyAssemblyName;component/MyResourcesFolder/MyImage.png
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.