Wie ein Label den Composite-GC in SWT erbt

8

Ich schreibe eine App und unsere Designer möchten für einige unserer Composites Gradienten für einige Hintergründe verwenden.

Ich habe den folgenden Code geschrieben:

%Vor%

Dadurch wird der Farbverlauf in der Komposition fein gezeichnet, aber wir haben Label / CLabels, Canvases und Links oben auf dem Composite.

In diesen Bereichen ist der Hintergrund nur das einfache Grau, das Sie beim Zeichnen einer leeren Leinwand erhalten.

Ich habe versucht, die Labels dazu zu bringen, den Hintergrund wie folgt zu erben:

%Vor%

Aber das lässt mich mit dem gleichen Standard-Grau und ohne Farbverlauf hinter den Komponenten oben auf dem Composite.

Irgendwelche Vorschläge, um den Gradienten als Hintergrund für jedes Element zu erhalten?

Ich würde nicht dagegen sein, den Farbverlauf auf ein GC mit einem gelieferten Bild zu zeichnen und dann den Hintergrund auf dieses Bild zu setzen. Allerdings hat diese Methode überhaupt nicht funktioniert, Composite oder eines seiner Elemente.

Auch ist es mir nicht möglich, den Gradienten individuell zu bestimmen. Wir wollen, dass der gesamte Verbund ein einheitlicher Fließverlauf ist.

[Bearbeiten] Ich habe hier ein Beispiel upto twitpic hier hochgeladen.

Danke,

Brian Gianforcaro

    
Brian Gianforcaro 25.09.2008, 22:24
quelle

2 Antworten

10

Verwenden Sie composite.setBackgroundMode (SWT.INHERIT_DEFAULT) , aber zeichnen Sie das Composite nicht direkt - zeichnen Sie ein Bild und legen Sie es als Hintergrundbild fest, indem Sie composite.setBackgroundImage (Image) verwenden. stark>. Wenn ich keinen Trick verpasse, bedeutet dies, dass Sie das Bild nur neu generieren müssen, wenn die Größe des Composits ebenfalls geändert wird.

Sie sollten in der Lage sein, diesen Code auszuschneiden, um zu sehen, was ich meine:

%Vor%     
McDowell 26.09.2008, 10:51
quelle
-1

Das erste, was ich versuchen würde, ist ein Bild vom Widget aufnehmen und den Teil des Bildes, auf dem sich das Kind-Widget befindet, direkt auf das Kind-Widget malen.

Wenn das nicht funktioniert, versuchen Sie, den gleichen Paint-Listener für beide Widgets zu verwenden, aber zuvor, um die Umwandlung des GC auf die folgende zu setzen, nachdem der GC konvertiert wurde, um Koordinaten in den Koordinatenraum des Labels zu übersetzen:

%Vor%

Achten Sie außerdem darauf, alle von Ihnen erstellten Farbinstanzen nach dem Abschluss zu entfernen. Andernfalls werden Sie Systemressourcen verlieren und schließlich auslaufen.

    
qualidafial 25.09.2008 22:44
quelle

Tags und Links