Hi,
ich versuch gerade eine Prozentanzeige in Form eines Rings zu machen...
einfarbig soweit auch kein Problem.
g.DrawArc(_pen, _drawingRect, _startAngle, _percentAngle);
Jedoch hätte ich den Ring gerne mit einem Gradientenfarbverlauf versehen.
Also irgendwie in der Art:
GraphicsPath path = new GraphicsPath();
path.AddArc(_drawingRect, _startAngle, _percentAngle);
path.FillMode = FillMode.Winding;
PathGradientBrush brush = new PathGradientBrush(path);
brush.WrapMode = WrapMode.Clamp;
ColorBlend cb = new ColorBlend();
cb.Colors = new Color[] { Color.Blue, Color.Aquamarine };
cb.Positions = new float[] { 0.0f, 1.0f };
brush.InterpolationColors = cb;
_pen = new Pen(brush, _thicknes);
Jedoch hätte ich gern das der Farbverlauf dem Arc folgt und nicht zur Mitte hin verläuft.
Gibt es da eine Möglichkeit?
Besten Dank im voraus
Es gibt 11 Arten von Menschen:
Hallo SkySurfer,
soweit ich das überblicke, kannst du mittels der Möglichkeiten im Framework wohl nur den Verlauf des Rings durch viele kleine GradientStops interpolieren und auch das erst ab .NET 3.0.
herbivore
Der Verlauf des Rings lässt sich seit Framework 1.0(besser 1.1 wg. Kompatibilität) einstellen. - Natürlich nur GDI+.
@skysurfer:
könntest du das genauer ausführen mit dem Verlaufen?
Hallo ikaros,
Der Verlauf des Rings lässt sich seit Framework 1.0(besser 1.1 wg. Kompatibilität) einstellen.
wie?
herbivore
naja also im prinzip soll der verlauf dem kurvenpfad folgen..
das wie würde mich jetzt auch interessieren 😉
Es gibt 11 Arten von Menschen:
Hallo SkySurfer,
für .NET 3.0 habe ich ja schon eine Lösung angegeben. Und was .NET 1.1 anbelangt, beinhaltet mein "wie?" deutliche Zweifel, dass dort schon eine solche Lösung existiert.
Das einzige was ich mir vorstellen kann, ist, dass ikaros meint, dass man auch schon in früh(er)en Frameworkversionen auf Win32-GDI-API-Funktionen zurückgreifen könnte.
herbivore
Also mein jetziger Ansatz wäre es einen Brush abzuleiten und den Farbverlauf selbst zu berechnen als ähnlich wie man dann dann bei 3.0 machen würde über kleine Integrationsschrittweite ..
Es gibt 11 Arten von Menschen:
Mit dem Pathgradientbrush ist es möglich einen Farbverlauf um die Mitte des Kreises zu gestalten. Es gibt jedoch nur eine Centerfarbe. der Verlauf ist also ein verlauf von der Centerfarbe zu dem äusseren Farbverlauf. Die Darstellung ist damit ähnlich zum Colorpicker in Paint.net.
Zu beachten sit das der Brush intern Kurven in Liniensegmente umwandelt. Die Surroundcolors müssen entsprechend dem gewünschten Verlaufs angepasst werden.