[英]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.