Wollte mal fragen ob es möglich ist beim LinearGradientBrush nur den Start und Endpunkt zu ändern. Ich mache das momentan so das ich ein Brush Objekt erzeuge und das immer wieder mit new überschreibe, das nervt mich irgendwie. die Farben kann man ja auch ändern. der Brush hat die methode TranslateTransform , allerdings ist dann wohl kaum was gewonnen wenn ich eine Matrixtransformierung machen muss um das Rectangle zu ändern. In WPF gibt es ja Start- und Endpunkt neu angeben
LinearGradientBrush lgb = new LinearGradientBrush(rec,color[0],color[1]);
lgb.Linearcolor = color;
Ich überschreib lgb halt immer wieder mit new.
Hi Schnueggel,
Matrixtransformierung ist genau das Stichwort.
Folgender Code zeigt wie einfach es geht
Image aImage = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics aGraphics = Graphics.FromImage(aImage);
aGraphics.Clear(Color.White);
Rectangle aRect = new Rectangle(0, 0, 50, 50);
LinearGradientBrush aBrush = new LinearGradientBrush(aRect, Color.Black, Color.Blue, 0.0f);
aBrush.TranslateTransform(20, 20);
aGraphics.FillRectangle(aBrush, new Rectangle(20, 20, 50, 50));
aBrush.TranslateTransform(80, 0);
aGraphics.FillRectangle(aBrush, new Rectangle(100, 20, 50, 50));
pictureBox1.Image = aImage;
aGraphics.Dispose();
Wenn du also zb nur den Start und Endpunkt ändern willst, reicht ne Translation.
Grüße,
psy
PS: Thema bitte nach Grafik und Sound verschieben.
Ok danke dir. Werd ich dann wohl so machen müssen. Eine kleine rechnung halt immer vorweg.