Auf Form des UserControl zeichnen

23/04/2009 - 12:11 von Andreas Müller | Report spam
Hallo,

zum Ausgangspunkt: Ich habe ein PNG mit Transparenz in einer Picturebox. Das
Problem ist, daß die Transparenz nicht angezeigt wird und ich konnte das
auch nicht hin tricksen. Ich habe gelesen daß es hiflt wenn man das Bild mit
DrawImage selbst zeichnet. Ich habe versucht es in die Picturebox zu
zeichnen, aber da war die Transparenz wieder weg. Nun möchte ich probieren
mir ein einfaches UserControl zu machen, das nichs anderes tut als das Bild
anzuzeigen, mit Transparenz natürlich. Ich komme da aber nicht ganz durch
und brauche nun etwas Hilfe.

Das PNG ist 50x50 Pixel groß.
Ich versuche es so, in mein UserControl mit Size 50;50 zu zeichnen:

Public Class UserControl1

Public Sub New(ByVal imgPath As String)
InitializeComponent()
Using g As Graphics = 'Hier bràuchte ich das Graphics-Objekt des
UserControls
g.DrawImage(Image.FromFile(imgPath), 0, 0)
End Using
End Sub

End Class

Mein erstes Problem scheint zu sein, daß ich für g As Graphics nicht den
"Formhintergrund" herbekomme. Mit "Using g As Graphics =
Graphics.FromHwnd(Me.Handle)" und diversen Varianten funktioniert es nicht.

Zum Hintergrund: Ziel ist es eine "Spielfigur" über ein Spielbrett aus
PictureBoxen zu fahren und dabei die Transparenz der Figur darzustellen. Die
Figur einfach auf Form1 zu zeichnen, will ich eigentlich nicht, darum die
Idee mit dem UserControl. Im Ereignis Paint, würde er es ja öfter zeichnen,
oder? Das Bild wird sich, einmal gesetzt, nicht àndern.

Könnt ihr mir helfen?

Gruß,

Andreas
 

Lesen sie die antworten

#1 Armin Zingler
23/04/2009 - 15:34 | Warnen spam
Andreas Müller wrote:

Mein erstes Problem scheint zu sein, daß ich für g As Graphics nicht
den "Formhintergrund" herbekomme. Mit "Using g As Graphics > Graphics.FromHwnd(Me.Handle)" und diversen Varianten funktioniert es
nicht.



Erstens wàre Me.Creategraphics() einfacher und zweitens nützt dir das im
Constructor (Sub New) eh noch nichts. Zeichnen musst du in OnPaint (bzw im
Paint-Ereignis)

Zum Hintergrund: Ziel ist es eine "Spielfigur" über ein Spielbrett aus
PictureBoxen zu fahren und dabei die Transparenz der Figur
darzustellen. Die Figur einfach auf Form1 zu zeichnen, will ich
eigentlich nicht, darum die Idee mit dem UserControl. Im Ereignis
Paint, würde er es ja öfter zeichnen, oder? Das Bild wird sich,
einmal gesetzt, nicht àndern.
Könnt ihr mir helfen?



Animationen mit Controls sind eher nicht das Gelbe vom Ei. Controls sind für
den statischen Einsatz brauchbarer.

Aber was red' ich... guckst du hier:
http://www.bobpowell.net/transcontrols.htm


Armin

Ähnliche fragen