Ich habe eine C # -Anwendung, die die aktuelle Zeit in a zeigt
transparentes .NET-Formular. Das Formular enthält keine Steuerelemente und keine Rahmen.
Seine Eigenschaft TransparencyKey ist auf die Hintergrundfarbe des Formulars eingestellt
"hellgrau" um es transparent zu machen.
So kann der Benutzer nur den Text (aktuelle Uhrzeit) sehen.
Der Text wird in PaintEventHandler gezeichnet:
%Vor%Aufgrund des Anti-Aliasing wird der Text "00:00:00" ausgefranst wenn der Form ist über einem dunklen Hintergrund. Für helle Hintergründe ist der Text o.k.
Dieses Bild zeigt das Problem und den guten Fall:
Offensichtlich rendert Windows den Text so, dass er zu dem passt Forms eigene Hintergrundfarbe und nicht in einer Weise, dass es passt Hintergrund, der hinter der transparenten Form steht.
Ist es möglich, dass Windows den Hintergrund hinterlässt? das Formular beim Rendern des Textes berücksichtigen, damit ich es bekomme die Fransen loswerden?
Eine "Lösung" könnte sein, das Anti-Aliasing durch Setzen von TextRenderingHint zu deaktivieren entsprechend. Aber bis jetzt ist das nicht meine bevorzugte "Lösung".
System:
Windows XP, SP 3, .NET 3.5, VS 2008
Ich habe vor einigen Monaten eine ähnliche Frage gestellt.
Was ich am Ende gemacht habe, war zwei Optionen: