Als Lieblingsprojekt habe ich mit dem Konzept der Integration von Aero Glass Effekten in meine SWT Anwendung gespielt. Łukasz Milewski has an excellent blog post zu erklären, wie dies erreicht werden kann, was ziemlich viel läuft darauf hinaus, diese nach unten:Kombination von Aero Glass Effekten und SWT
final Display display = new Display();
final Shell shell = new Shell(display);
shell.setLayout(new FormLayout());
final MARGINS margins = new MARGINS();
margins.cyTopHeight = -1;
final Composite c = new Composite(shell, SWT.NORMAL);
c.setBackground(new Color(shell.getDisplay(), new RGB(0, 0, 0)));
final FormData fd = new FormData();
fd.top = new FormAttachment(0, 0);
fd.left = new FormAttachment(0, 0);
fd.right = new FormAttachment(100, 0);
fd.bottom = new FormAttachment(100, 0);
c.setLayoutData(fd);
OS.DwmExtendFrameIntoClientArea(shell.handle, margins);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
Dieses schön funktioniert, bis Sie ein Steuerelement hinzufügen möchten. Dies führt in schwarz transparent bleibt:
A follow-up post zeigt, wie dies zu tun, auch, aber erfordert die SWT-Bibliothek zu modifizieren. (Zumindest glaube ich das, weil private SWT-Funktionen mit @Override
übersteuert werden.)
Wie kann ich vermeiden, dass Kontrollen transparent werden? Noch besser: Wie kann ich von Transparenz profitieren (z. B. Bilder darauf platzieren like so), aber es sinnvoll nutzen?
Können Sie lebende Links hinzufügen? – Supuhstar