2011-08-26 45 views
0

我想在WPF中顯示圖像,但使用實際圖像,而不是使用URL。這是因爲我想序列化圖像,所以我可以很容易地將它們攜帶。我如何做到這一點,如果圖像類只是來源?這意味着使用URI。這個想法很簡單:序列化圖像,然後,當完成反序列化時,它會將圖像加載到像Image這樣的控制器上。 它甚至有可能,讓我說我有圖像序列化,然後我怎麼能得到他們的URI,即使這樣的事情甚至存在?這很混亂。希望有一些真正的啓示...WPF Image:從文件顯示圖像,怎麼樣?

我已經發現了許多代碼片斷,顯示瞭如何序列化/反序列化,但老實說,我還沒有能夠測試它們,因爲我的計劃的初始部分已經擱置。雖然,如果任何人有一個良好的清潔鏈接,我會很感激!

回答

1

WPF不需要實際的URI;它需要一個ImageSource的實例,它恰巧包含一個從stringImageSource的內置轉換器,該轉換器將字符串解釋爲URI。

到您的序列化格式轉換成ImageSource例如最簡單的方法就是把類似下面的一個IValueConverter並返回BitmapImage

BitmapImage bi = new BitmapImage(); 
bi.BeginInit(); 
bi.StreamSource = /*your serialized image data in Stream form*/; 
bi.EndInit(); 
+0

這實際上幫了我一大堆!我太專注於URI,甚至沒有注意到StreamSource!謝謝 :) – InquiSab

0

Image.Source一個URI,你可以進入的URI,但使用TypeConverter他們只是自動轉換爲ImageSource。所以,如果你想序列化和反序列化圖像,你可以將相應的ImageSource作爲一個屬性公開,這可以設置爲boundImage.Source

+0

謝謝您的幫助,這也幫助我理解越好第一條評論! – InquiSab

相關問題