Hallo,
ich habe Messwerte im Bereich 0-100, welche in einem ZedGraph als Säulendiagramm dargestellt werden sollen.
Nun möchte ich gerne einen unskalierten Farbverlauf OHNE Widerholungen verwenden.
Schaut mal auf das Bild im Anhang:
Hier sieht man an dem Balken ganz rechts, dass der LinearGradientBrush irgendwann widerholt wird. Ein Messwert von 100 sollte aber vollem Grün entsprechen.
Erstmal noch der entsprechende Code:
ColorBlend blend = new ColorBlend(3);
blend.Colors = new Color[] { Color.Red, Color.Yellow, Color.Green };
blend.Positions = new float[] { 0.0f, 0.5f, 1f };
LinearGradientBrush lg = new LinearGradientBrush(new Point(0, 0), new Point(0, 230), Color.Black, Color.Black);
lg.InterpolationColors = blend;
myCurve.Bar.Fill = new Fill(lg, AlignH.Left, AlignV.Bottom);
Die 230 im Konstruktorparameter ist der Wert, ab dem die Widerholung beginnt.
Der Wert müsste genau der Höhe der eigentlichen Zeichenfläche für die Säulen entsprechen, so dass es nicht zu einer Widerholung kommen kann, nur habe ich keinen Weg gefunden diesen Wert zu ermitteln. Wegen Skalierung der Winform kommt ein fest einkodierter Wert sowieso nicht in Frage.
Jemand eine Idee, wie man das Problem löst?
Danke
Nein, die ClientSize bezieht sich ja auf das ganze zedGraph-Control.
Die Höhe der blau gefärbten Fläche wäre zu ermitteln.
Zu dem zedGraph gehört ja auch noch eine Legende, Achsenbeschriftungen u.s.w.
Leider auch nicht:
"The rectangle, that defines the full area into which all graphics will be rendered".
GradientByY
Member von ZedGraph.FillTypeZusammenfassung:
Fill with a single solid color based on the Z value of the data.Hinweise:
The Z value is used to determine the color value based on a gradient brush, and using a data range of ZedGraph.Fill.RangeMin and ZedGraph.Fill.RangeMax. You can create a multicolor range by initializing the ZedGraph.Fill class with your own custom ZedGraph.FillType.Brush object based on a System.Drawing.Drawing2D.ColorBlend. In cases where a data value makes no sense (ZedGraph.PaneBase.Fill, ZedGraph.Legend.Fill, etc.), a default value of 50% of the range is assumed. The default range is 0 to 1.
Wie wäre es damit?
Danke aber wie da ja steht: "Fill with a single solid color".
Der Gradient bildet nur die Farbpalette, aus der eine Farbe mit dem Z-Wert ausgewählt wird.
Danke aber wie da ja steht: "Fill with a single solid color".
Der Gradient bildet nur die Farbpalette, aus der eine Farbe mit dem Z-Wert ausgewählt wird.
Den Hinweis auch gelesen?
The Z value is used to determine the color value based on a gradient brush, and using a data range of ZedGraph.Fill.RangeMin and ZedGraph.Fill.RangeMax. You can create a multicolor range by initializing the ZedGraph.Fill class with your own custom ZedGraph.FillType.Brush object based on a System.Drawing.Drawing2D.ColorBlend.
Den Hinweis auch gelesen?
Ja. Du auch?
Der z-Wert selektiert EINE Farbe aus dem Farbverlauf.