-
DrawImage Problem
Hi liebe Com.
Irgendwie hänge ich gerade an dieser Stelle.
Ich will ein Control erstellen (imagebutton) welchem ich dann ein Bild (.bmp) zuweisen möchte.
Code:
public class imagebutton:Control
{
protected override void OnPaint(PaintEventArgs e)
{
e.Graphics.DrawImage(new Bitmap("test.bmp"), this.Left, this.Right);
}
}
Der Versuch endet in einer "Unbehandelten Ausnahme"
System.ArgumentException: Ungültiger Parameter.
Die Bitmap ist in der .resx-Datei.
Habe aber auch schon versucht mittels
new Bitmap("C:\\test.bmp") die Bitmap zu öffnen...
Kann mir jemand auf die Sprünge helfen?
-
AW: DrawImage Problem
In WindowsMobile gibt's kein 'C:\' sondern direkt '\'. Kann es sein, dass die Bitmap in den Resourcen in Properties' - 'Build Action' nicht 'Embedded Resource' hat? Diese Einstellung bewirkt, dass die Resource in das exe kompiliert wird.
Code:
object image = Properties.Resources.ResourceManager.GetObject(test, Properties.Resources.Culture);
if (image != null)
{
// DrawImage mit (Bitmap)image aufrufen
}
-
AW: DrawImage Problem
Hi, danke für die Antwort.
hmm ich werd nich ganz schlau
Code:
public class ImageButton : Control
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics gbutton = e.Graphics;
object image = Properties.Resources.ResourceManager.GetObject("\test.bmp", Properties.Resources.Culture);
if (image != null)
{
gbutton.DrawImage(new Bitmap ("\test.bmp"), this.Left, this.Right);
}
}
}
Edit: und ja bei Resources hat die Bitmap folgende Eigenschaften:
Benutzerdefiniertes Tool: -
Buildvorgang: Eingebettete Ressource
Dateiname: test.bmp
In Ausgabeverzeichnis kopieren: Immer kopieren
Namespaces des benutzerdefinierten Tools: -
es hat mir beim getobject einen Fehler ausgegeben bei test, also dachtei ch mal da kommt der Dateinamen rein.
mit dem Code lädt die Datei fehlerfrei... jedoch leider auch Bildfrei^^
sorry falls ich was falsch mache.
GreeZ
-
AW: DrawImage Problem
image ist also ungleich null?
Vesuche direkt Properties.Resources.test aufzurufen. Das müsste direkt das Bitmap liefern.
Im DrawImage das erste Argument durch image ersetzen!
-
AW: DrawImage Problem
?^^
also wenn ich per else schaue ob die Variable leer ist^^ (was ja else in diesem fall wäre
if (image != null)
{
gbutton.DrawImage(new Bitmap("\test.bmp"), this.Left, this.Right);
}
else MessageBox.Show("leer");
dann ist image momentan leer^^
und
Code:
public class ImageButton : Control
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics gbutton = e.Graphics;
object image = Properties.Resources.ResourceManager.GetObject("\test.bmp", Properties.Resources.Culture);
if (image != null)
{
gbutton.DrawImage(new Bitmap(image), this.Left, this.Right);
}
else MessageBox.Show("leer");
}
}
so?? (wenn ja dann fgehts nich... image erzeugt an dieser stelle zwei Fehler und zwar:
Fehler 1 Die beste Übereinstimmung für die überladene System.Drawing.Bitmap.Bitmap(System.Drawing.Image)-Methode hat einige ungültige Argumente.
und
Fehler 2 1-Argument: kann nicht von "object" in "System.Drawing.Image" konvertiert werden.
Tut mir leid für meine Unwissenheit:(
-
AW: DrawImage Problem
versuch folgendes:
Code:
public class ImageButton : Control
{
protected override void OnPaint(PaintEventArgs e)
{
base.OnPaint(e);
Graphics gbutton = e.Graphics;
Bitmap image = Properties.Resources.test;
if (image != null)
{
gbutton.DrawImage(image, 0, 0);
}
else MessageBox.Show("leer");
}
}
-
AW: DrawImage Problem
Zwar gibt die MessageBox immer noch Leer aus^^
Aber das Image wird geladen:) supi:D
Vielen lieben Dank:)
Und grösseren Dank für die Geduld:)
-
AW: DrawImage Problem
-.- im supertollen SharpDevelop funktioniert der Code auch nicht mehr...
Echt frustrierend, dass es für C# .net framework eine Express version vom Visual Studios gibt.. aber für Compact Framework nur die Vollversion funktioniert...
Ich kann hier:
Bitmap image = Properties.Resources.test;
Properties nicht ansprechen... toll-.-
weiss jemand einen weg damit man via beide umgebungen entwickeln kann?
-
AW: DrawImage Problem
So... habs hinbekommen...
Code:
public class ImageButton : Control
{
public ImageButton()
{
}
protected override void OnPaint(PaintEventArgs e)
{
ResourceManager resources = new ResourceManager("Resourcen.Resource1", Assembly.GetExecutingAssembly());
Bitmap bitmap = (Bitmap)resources.GetObject("Image");
Graphics g = e.Graphics;
if ( bitmap != null)
{
g.DrawImage(bitmap , 0, 0);
}
}
}
... bin schon ganz gespannt ob ich zuhause mit Visual Studio daran weiterarbeiten kann-.-
GreeZ und sorry für den Doppelpost