Hallo Zusammen,
ich hoffe von euch kann mir jemand weiterhelfen.
Ich habe folgendes Problem:
Ich lade ein Bild in eine PictureBox und auf dieser PictureBox erstelle ich die von mir erstellte UserControls. Diese sollen Transparent sein. Auf den UserControl wird wahlweise ein Kreis, Rechteck, Stern oder Pfeil gezeichnet. Die Transparenz der UserControls zur PictureBox habe ich so realisiert :
Folgende Styles werden im Konstruktor des UserControls gesetzt.
In meiner Windows Form Anwendung weise ich dann die PictuerBox als Parent hinzu, damit die UscerControls zu dieser Transparent sind. (_uscRectangle,... sind die von mir erstellten Usercontrols)
Bis hierhin funktioniert auch alles prächtig. Da Problem kommt jetzt erst wenn sich die UserControls überlagern, weil die UserControls nicht zueinander transparent sind. Siehe Bild(gelber Kreis wurde in Paint eingefügt zur Markierung der Problemstelle)

So sollte es aussehen(Die grünen Linien wurden per Hand eingefügt)

Ich habe es auch schon mit
versucht. Leider ohne Erfolg.
Die Möglichkeit direkt auf das Bild zu Zeichen fällt weg, da die Symbole änderbar seinen sollen.(Größe, Position, Farbe , Ausrichtung).
Der Sinn des ganzen besteht darin, die Symbole als Overlay extra abzuspeichern und wieder zu laden. Das Bild in der PictuerBox soll dann mit den Symbolen auch extra abgespeichert werden. (Alles auch schon implementiert und es funktioniert auch).
Welche Möglichkeiten haben ich das die UserControls zueinander und auch zu der PicterBox transparent sind?
Programmiersprache VB.net
Framework 4
ich hoffe von euch kann mir jemand weiterhelfen.
Ich habe folgendes Problem:
Ich lade ein Bild in eine PictureBox und auf dieser PictureBox erstelle ich die von mir erstellte UserControls. Diese sollen Transparent sein. Auf den UserControl wird wahlweise ein Kreis, Rechteck, Stern oder Pfeil gezeichnet. Die Transparenz der UserControls zur PictureBox habe ich so realisiert :
Folgende Styles werden im Konstruktor des UserControls gesetzt.
Code:
Me.SetStyle(ControlStyles.SupportsTransparentBackColor, True)
Me.SetStyle(ControlStyles.UserPaint, True)
Me.SetStyle(ControlStyles.AllPaintingInWmPaint, True)
Me.SetStyle(ControlStyles.ResizeRedraw, True)
Me.BackColor = Color.Transparent
Code:
Me.Controls.Add(_uscRectangle)
Me.Controls.Add(_uscStar)
Me.Controls.Add(_uscArrow)
Me.Controls.Add(_uscCircle)
_uscRectangle.Parent = PictureBox1
_uscCircle.Parent = PictureBox1
_uscStar.Parent = PictureBox1
_uscArrow.Parent = PictureBox1
Bis hierhin funktioniert auch alles prächtig. Da Problem kommt jetzt erst wenn sich die UserControls überlagern, weil die UserControls nicht zueinander transparent sind. Siehe Bild(gelber Kreis wurde in Paint eingefügt zur Markierung der Problemstelle)

So sollte es aussehen(Die grünen Linien wurden per Hand eingefügt)

Ich habe es auch schon mit
Code:
Protected Overridable ReadOnly Property CreateParams As CreateParams
Die Möglichkeit direkt auf das Bild zu Zeichen fällt weg, da die Symbole änderbar seinen sollen.(Größe, Position, Farbe , Ausrichtung).
Der Sinn des ganzen besteht darin, die Symbole als Overlay extra abzuspeichern und wieder zu laden. Das Bild in der PictuerBox soll dann mit den Symbolen auch extra abgespeichert werden. (Alles auch schon implementiert und es funktioniert auch).
Welche Möglichkeiten haben ich das die UserControls zueinander und auch zu der PicterBox transparent sind?
Programmiersprache VB.net
Framework 4
Zuletzt bearbeitet: