我對這個問題的動機實際上只是通過ImageSource的依賴屬性指定要在用戶控件中使用的圖像。我遇到了一些涉及管理,訪問和單元測試的痛點。wpf圖像資源和visual studio 2010資源編輯器
- 資源編輯器是一個很好的工具來維護應用程序的圖像嗎?
- 將位圖從編輯器轉換爲ImageSource的最佳方式是什麼?
- 如何從編輯器中獲取資源文件名?
我對這個問題的動機實際上只是通過ImageSource的依賴屬性指定要在用戶控件中使用的圖像。我遇到了一些涉及管理,訪問和單元測試的痛點。wpf圖像資源和visual studio 2010資源編輯器
不,資源編輯器不是一個好的工具。
在WPF應用程序中,最好的方法是將所有圖像放在「圖像」目錄中,並將每個圖像標記爲「資源」。然後你可以在Image控件和其他地方直接引用它們。
以下是具體步驟:
現在你可以在XAML輕鬆引用您的圖片:
<Image Source="Images/MyImage.png" />
或者代碼:
var source = (BitmapSource)Application.LoadComponent(
new Uri("Images/MyImage.png", UriKind.Relative));
您也可以參考圖像外部組件:
<Image Source="ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png" />
在代碼中是:
var source = (BitmapSource)Application.LoadComponent(
new Uri("ReferencedAssembly;v1.0.0.1;component/Images/MyImage.png",
UriKind.Relative));
完美!兩個問題 - (1)構建行爲是「內容」而不是「資源」的實際優勢? (2)將代碼放在引用的程序集中,只需將'Application.LoadComponent(「ReferencedAssembly; v1.0.0.1; component/Images/MyImage.png」)作爲BitmapSource;'?你知道任何幫助代碼來獲得該語法(對不起,三個問題)?謝謝! – Berryl 2010-06-12 05:39:03
它看起來像Application.LoadComponent需要一個Uri(不是字符串) – Berryl 2010-06-12 05:57:39
謝謝。不知何故,我總是忘記了「新Uri(...,UriKind.Relative)」,直到編譯器指出我的方式錯誤。我已經糾正了答案。 – 2010-06-12 22:15:47
通過使用資源編輯器來維護圖像意味着什麼? – 2010-06-11 23:24:30
我的意思是將圖像添加到資源設計器,然後在需要時找到它們。或者,如果這是一個壞主意,那麼對於可能在多個程序集中具有圖像的非平凡應用程序,更好的方法是什麼。乾杯 – Berryl 2010-06-12 00:13:07