Hi liebe myCSharp Gemeinde !
Ich habe folgende Frage:
Ich setze mit Form.Region und GraphicsPath eine Region fest (Als test eine Ellipse)...
Die ist aber sowas von "eckig" rund, kann man die Qualität nicht irgendwie verbessern ?
Hier das Beispiel habe ich angehängt... einfach ein roter Kreis mit leider zackigem Rand 😦
Code:
GraphicsPath gp = new GraphicsPath();
gp.AddEllipse(new Rectangle(0, 0, 300, 300));
gp.CloseFigure();
this.Region = new Region(gp);
this.BackColor = Color.Red;
Danke für eure Bemühungen ...
Grüße
Heyo,
habe gerade weiter gegooglet wie so ein wilden... Und dann bei Bilder geschaut, ob dort eins bei ist wo der Rand besser ist... Da bin ich auf folgendes gestoßen:
How to build a none rectangular form using C#
Dieser setzt TransparencyKey auf Control, wie die DefaultBackColor von einer Form ist und zeichnet danach mit HighQuality bzw. AntiAlias seine runde Ellipse, die wesentlich besser aussieht...
Denke das ist dann die gängige Methode... Außer es hat noch einer einen anderen Vorschlag 😃
Gruß
also zumindest bei mir kann ich keinen großen unterschied sehen,
mich würd auch sehr interesserieren wie das normaler weise gemacht wird
bzw. wie funktioniert das bei picasa mit dem rotierenden splash screen?
In der Computergrafik würde man jetzt sagen, dass man hier Anti-Aliasing oder Edge Smoothing benötigen würde.
Vielleicht hilft das beim Googeln
Life is a short
Ja das AntiAliasing kannst du aber bei Form.Region nicht aktivieren 😃, dort setzt du ja nur den Umriss der Form...
Aber in meinem 2ten Post ist eine 2te Variante, dort setzt man die gesamte Form die TransparencyKey Farbe auf Control, dann ist sie durchsichtig, dann zeichnet man seinen Kreis im OnPaint mit AntiAlias = True..., dann sieht es aufjedenfall schonmal besser aus als mit Form.Region 😃
Aber ist das nun die gängige Methode oder gibt es noch eine andere (bessere) ?
Grüße
Naja mit der Winapibekommt man schon schöne Übergänge und so hin:
A lovely goldfish desktop pet (using alpha-PNG and GDI+)
Per Pixel Alpha Blend in C#
Hat aber den unschönen Nebeneffekt, dass kein WM_PAINT mehr gesendet wird. Das heißt in der Praxis:
Um das zu umgehen ist wirderum reichlich Trixxerei nötig, aber es hat sich jemand die Mühe schon gemacht:
An Alpha Channel Composited Windows Form with Designer Support
Alternativ unterstützt WPF das auch von Haus aus, ohne unschöne Nebeneffekte^^