2012-10-18 3 views
8

Ich habe einige Bilder zu meiner Lösung hinzugefügt, jetzt befindet es sich unter dem Ordner images \ flowers \ rose.png im Solution Explorer. Ich möchte eine Möglichkeit, dieses Bild dynamisch in mein Bildsteuerelement zu laden.Dynamisches Hinzufügen und Laden von Bildern aus Ressourcen in C#

Mein aktueller Ansatz besteht darin, den Typ "Inhalt" zu erstellen und die Eigenschaft "Immer kopieren" zu verwenden. Dann würde ich relativen Pfad zum Bild wie unten geben.

Gibt es eine Möglichkeit, es von der Ressource zu laden, ohne es auf das Zielsystem zu kopieren.

Antwort

1

Sie verwenden diese:

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

Oder

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

ich die zweite empfehlen.

14

Die folgenden Werke für mich ganz gut:

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

Auch sollten Sie die Build Action Ihr Bild None-Resource ändern.

0

Die Art und Weise, wie Sie ein Bild hinzufügen und dann die "Build-Aktion" in "Ressourcen" ändern, wird ebenfalls funktionieren. Aber wie Sie das Hinzufügen und Laden von Ressourcen angefordert haben, wäre ein anderer Ansatz, um die gleiche Aufgabe zu erreichen. Ich würde Ihnen einen Link zur Verfügung stellen, um bestimmte msdn Artikel zu lesen.

Adding and Editing Resources (Visual C#)

0

Ich hatte ein paar Probleme, die genaue Syntax für den URI zu finden, so unten, um mehr Details sehen:

Wenn Ihr Bild (myImage.png) befindet sich in einem Unterordner „Bilder“ befindet (von der Wurzel Verzeichnis) ist die genaue Syntax:

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

Wenn Ihr Bild in dem Unterordner images/icon/ (aus dem Stammverzeichnis) ist, die Syntax ist:

image.Source = new BitmapImage(new Uri(@"pack://application:,,,/images/icon/myImage.png", UriKind.Absolute)); 
  • Beachten Sie, dass der Teil "pack://application:,,, nicht ändert.
  • Achten Sie darauf, die "Build Action" auf "Ressourcen"

Weitere Informationen zu setzen: see here.