2012-10-18 97 views
8

我有一些圖像添加到我的解決方案,現在它在解決方案資源管理器內的images \ flowers \ rose.png文件夾下。我想要一種動態加載這個圖像到我的圖像控制的方式。從C#中的資源動態添加和加載圖像

我目前的做法是製作「內容」類型並使用「始終複製」屬性。然後我會給像下面的圖像的相對路徑。

Image2.Source = new BitmapImage(new Uri("/images/flowers/Customswipe_b.png", UriKind.Relative)); 

有沒有什麼辦法讓它從資源加載而不復制到目標系統。

回答

1

訪問它Bitmap您可以使用此:

Image2.Source = new Bitmap(
     System.Reflection.Assembly.GetEntryAssembly(). 
     GetManifestResourceStream("MyProject.Resources.myimage.png")); 

或者

Image2.Source = new Bitmap(WindowsFormsApplication1.Properties.Resources.myimage); 

我推薦第二個。

14

下面的作品對我蠻好:

image.Source = new BitmapImage(new Uri("pack://application:,,,/YourAssemblyName;component/Resources/someimage.png", UriKind.Absolute)); 

你也應該改變你的形象的Build ActionNoneResource

0

您添加圖像,然後將其「構建操作」更改爲「資源」的方式也可以完成這項工作,但是您已經要求從資源中添加和加載,將是實現相同任務的另一種方法。 我願意爲您提供一個鏈接來閱讀某些msdn文章。

Adding and Editing Resources (Visual C#)

0

我遇到了一些問題,以找到URI的確切語法,所以請參閱下面的詳細信息:

如果你的圖像(myImage.png)位於一個子文件夾中的「圖像」(從根目錄),確切的語法是:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/myImage.png", UriKind.Absolute)); 

如果你的圖片是在子文件夾images/icon/(從根目錄),語法是:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute)); 
  • 請注意,部分"pack://application:,,,不會改變。
  • 一定要設置「建設行動」,「資源」

欲瞭解更多信息:see here