Benutzer mit den meisten Antworten
[VS13] Problem mit Transparenz (Sprich: PictureBox & Label Elemente)

Frage
-
Hallo, erstmal vielen Dank fürs durchlesen und eventuell beantworten. Ich muss hier etwas weiter ausholen, damit ich das Problem auch verständlich erklären kann:
Ich würde gerne mit einer PictureBox einen begrenzten Background erstellen. Sprich: Ich will kein Background Image für das gesamte Frame verwenden sondern nur für einen Bereich, um das ganze Modular zu halten.
Um das ganze Stichpunktartig zu erklären: Hintergrundfarbe: schwarz -> (Bereich) Hintergrundbild: Pergamentpapier -> (Auf dem Pergament) ein Label mit transparentem Hintergrund.
Es soll dann so aussehen, als wenn die Schrift auf dem Pergament steht.
Problem: Der Hintergrund wird auf dem Label schwarz, wie der wirkliche Background dargestellt, sieht sch*** aus.
Vermutung: Die Transparenz erbt die Hintergrundfarbe und ist nicht echt Transparent.
Vielleicht hat ja jemand von euch einen Lösungsvorschlag, ich wäre euch sehr dankbar. Also: Gibt es eine Möglichkeit, ohne den Text auf das Bild zu zeichnen? Wenn es nur so geht, müsste ich 1000 Bilder erstellen, was doch recht unprofessionell wirkt.
PS: Mein erster Gedanke war: Das Pergamentpapier als gesamten Background zu benutzen, dann eine framefüllende schwarze Imagebox DRAUF zu setzen und jeweils das Pergament wieder als Imagebox an entsprechende Stelle zu setzen. ABER: Dann geht die Struktur verloren!
Vielen Dank!
Antworten
-
Hallo,
mit der Transparenz unter Windows Forms ist es etwas schwierig. Ich würde dir darum vorschlagen die Texte im Paint-Event der PictureBox zu setzen:Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint Dim xPos = 10, yPos = 160 e.Graphics.DrawString("Dein Text", SystemFonts.DialogFont, Brushes.Red, xPos, yPos) End Sub
Die so gezeichneten Texte haben einen transparenten Hintergrund. Du hast aber keinen Designer, sondern musst alles von Hand zeichnen.
Eine andere Möglichkeit besteht darin ein Panel in die Form zu ziehen und ihr das BackgroundImage zuzuweisen. Labels, die in dem Panel liegen und BackColor=Color.Transparent haben, haben auch keine Grafikprobleme.
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert QuestionMan88 Mittwoch, 13. August 2014 20:16
Alle Antworten
-
Hallo,
mit der Transparenz unter Windows Forms ist es etwas schwierig. Ich würde dir darum vorschlagen die Texte im Paint-Event der PictureBox zu setzen:Private Sub PictureBox1_Paint(sender As Object, e As PaintEventArgs) Handles PictureBox1.Paint Dim xPos = 10, yPos = 160 e.Graphics.DrawString("Dein Text", SystemFonts.DialogFont, Brushes.Red, xPos, yPos) End Sub
Die so gezeichneten Texte haben einen transparenten Hintergrund. Du hast aber keinen Designer, sondern musst alles von Hand zeichnen.
Eine andere Möglichkeit besteht darin ein Panel in die Form zu ziehen und ihr das BackgroundImage zuzuweisen. Labels, die in dem Panel liegen und BackColor=Color.Transparent haben, haben auch keine Grafikprobleme.
Tom Lambert - C# MVP
Bitte bewertet- und markiert Beiträge als Antwort. Danke.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert QuestionMan88 Mittwoch, 13. August 2014 20:16