Thomas Bandt

Über mich | Kontakt | Archiv

[CF] Hintergrundbild aus einer Resource laden

Ein Hintergrundbild für seine Form lässt sich wie folgt aus einer eingebetteten Ressource laden:

protected override void OnPaintBackground(PaintEventArgs e)
{
   base.OnPaintBackground(e);
   ResourceManager rm = new ResourceManager("MyApp.Library.Graphics.ResourceFile", this.GetType().Assembly);
   e.Graphics.DrawImage((Bitmap)rm.GetObject("MyImage"), 0, 0);
}

Wichtig ist dabei, dass der vollständige Pfad inkl. Namen der Applikation angegeben wird. "Library.Graphics" ist in diesem Fall eine Ordnerstruktur innerhalb des Projektes, "ResourceFile" ist das .resx-File. "MyImage" bezeichnet die Datei in der Resource, wie sie auch im Ressourcen-Editor von Visual Studio zu sehen ist, ohne Dateiendung.

Eine Übersicht über alle Resourcen im Projekt bekommt man übrigens am besten so:

foreach (string bla in Assembly.GetExecutingAssembly().GetManifestResourceNames())
{
   listBox1.Items.Add(bla);
}

Das setzt natürlich voraus, dass es eine Listbox namens listBox1 in der Form gibt. Angezeigt bekommt man den vollständigen Namen inkl. Pfad zur Ressource.



« Zurück  |  Weiter »