2011年10月27日 星期四


不得不說,WP7開發的資料真的是太少了,國內有句話叫「天下文章一大抄」,查Application.GetResourceStream的用法,找遍了整個網絡,無非就那一兩篇,而且寫得還不完整,包括微軟官方的例子。在花了近半天的時間後,終於解決問題。
我們可以預先把程序中用到的資源,如圖片,音樂等放入項目中,打包進XAP文檔,需要的時候再從中取用。下面就說說具體實現方法。

第一步,把資料存進項目。
1、右鍵點擊項目名稱-新增-新建資料夾,這裡文件夾名以 Images 為例,把需要的圖片拖進來,當然你也可以不建,直接把圖片拖到根目錄底下。
2、選中剛剛拖進去的圖片,看右下角的屬性標籤,如果沒有,右鍵點圖片,選屬性,確認圖片屬性中的建置動作為 Resource

第二步,程式呼叫。
1
System.IO.Stream src = Application.GetResourceStream(new Uri("/PhoneAppX;component/Images/abc.png", UriKind.Relative)).Stream;
關鍵在 Uri 的格式,PhoneAppX 是項目名稱,component 是固定路徑,Images/abc.jpg 才是圖片資源相對路徑,得到的是 Stream,在微軟官方的例子中,使用下面的方法來轉換成圖片:
1
2
3
4
            BitmapImage bi = new BitmapImage();
            bi.SetSource(src);
            Image img = new Image();
            img.Source = bi;
網路上的文章基本上都沒寫第一步,常常就卡在這裡,新增圖片還好,但是屬性的建置動作沒設好或改成其他屬性,導致程式在 Run 的時候常常丟出 Exception!


Reference To: http://www.pocketdigi.com/20110925/498.html

沒有留言:

張貼留言