Controlfüllung unter dem String zeichnen

30/12/2009 - 14:12 von Robert Spence | Report spam
Hallo NG,

ich habe mir ein Control erstellt, dass von Label abstammt.
In diesem Control lasse ich z.b. einen Rahmen (mit eckigen und abgerundeten Ecken) zeichnen. Der Rahmen nutzt die
Controlgrenzen -definiert über Rectangle _rect = new Rectangle(rx, ry, (rX - 1), (rY - 1)).

Nun fülle ich dieses Rechteck (Befüllung mittels LinearGradientBrush oder SolidBrush), das Ganze funktioniert soweit
auch prima. JEDOCH wird das angegebene Textstring überzeichnet. Ich kann zwar den String erneut zeichnen lassen
(DrawString) und auch die entsprechenden Positionen (Ausrichtungen) neu setzten. Jedoch würde es mich interessieren, ob
es eine Möglichkeit gibt, den von Haus aus angegeben Text und die Ausrichtung - ohne erneutes darüber zeichnen wieder in
den Vordergrund zu setzten?

Grüße
Robert
 

Lesen sie die antworten

#1 Herfried K. Wagner [MVP]
30/12/2009 - 15:23 | Warnen spam
Am 30.12.2009 14:12, schrieb Robert Spence:
ich habe mir ein Control erstellt, dass von Label abstammt.
In diesem Control lasse ich z.b. einen Rahmen (mit eckigen und
abgerundeten Ecken) zeichnen. Der Rahmen nutzt die Controlgrenzen
-definiert über Rectangle _rect = new Rectangle(rx, ry, (rX - 1), (rY -
1)).

Nun fülle ich dieses Rechteck (Befüllung mittels LinearGradientBrush
oder SolidBrush), das Ganze funktioniert soweit auch prima. JEDOCH wird
das angegebene Textstring überzeichnet. Ich kann zwar den String erneut
zeichnen lassen (DrawString) und auch die entsprechenden Positionen
(Ausrichtungen) neu setzten. Jedoch würde es mich interessieren, ob es
eine Möglichkeit gibt, den von Haus aus angegeben Text und die
Ausrichtung - ohne erneutes darüber zeichnen wieder in den Vordergrund
zu setzten?



Eventuell suchst Du nach der Methode 'OnPaintBackground' (siehe MSDN).

M S Herfried K. Wagner
M V P <URL:http://dotnet.mvps.org/>
V B <URL:http://dotnet.mvps.org/dotnet/faqs/>

Ähnliche fragen