[C#] LinearGradientBrush auf Rechteck skalieren.

Danielku15

Erfahrenes Mitglied
Hallo Leute.
Ich möchte bei meinem Projekt denselben LinearGradientBrush für mehrere Zeichenaufgaben verwenden um Resourcen zu sparen. Hab ich das Problem dass wenn ich nun die neuen Farben setze natürlich noch der Bereich welcher am Anfang definiert wurde gültig ist. Sprich wenn ich zuerst ein 300x300 Bereich Zeichne und darauf einen 600x1280 Bereich, stimmen die Verlaufsberechnungen nicht mehr. Ich hab gelesen dass das ganze über die Transform Matrix oder die SetScaleTransform Methode geht. Jedoch wird auf der MSDN nicht wirklich gut beschrieben wie nun das Ganze mit den Matrizen funktioniert.
Hat jemand von euch ne Methode oder Möglichkeit einen Brush auf einen bestimmten Rechtecksbereich zu skalieren und entsprechend zu rotieren?

C#:
/// <summary>
/// Skaliert den angegebenen Brush auf die Größe des Rechtecks.
/// </summary>
/// <param name="oBrush">Der Brush welcher skaliert werden soll.</param>
/// <param name="oRect">Auf welchen Bereich der Brush skaliert werden soll.</param>
private void ScaleBrushToRect(ref LinearGradientBrush oBrush, Rectangle oRect)
{
    // oBrush.Transform = ...;
    //  oder
    // oBrush.ScaleTransform(...);
}

Wäre euch echt dankbar.

Gruß Daniel.
 
Zuletzt bearbeitet:

Neue Beiträge

Zurück