Mich hat mal interessiert, wie ich die Aero Glass Effekte unter Windows 7 in C# Windows Forms nutzen kann. Auf codeproject.com fand ich dazu einen Artikel. Der funktioniert soweit auch schon ganz gut. Der Artikel zeigt, wie man einen Rand um seine Arbeitsfläche zieht, der den Aero Glass Effekt nutzt. Möchte man nun aber den ganzen Hintergrund durchsichtig haben, so müssen die Margins auf -1 gesetzt werden:
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
if (DwmIsCompositionEnabled())
{
// Paint the glass effect.
this.margins = new MARGINS {Top = -1, Left = -1, Bottom = -1, Right = -1};
DwmExtendFrameIntoClientArea(this.Handle, ref margins);
}
}
Nun ist der ganze Arbeitsbereich durchsichtig. Doch sobald man GDI+-Controlls verwendet, ergibt sich folgender Grafikfehler:
Um dies zu umgehen, müsst ihr in der Main()-Methode folgendes einfügen (bzw. anpassen)
Application.SetCompatibleTextRenderingDefault(true);
Das Ergebnis sieht schon besser aus, leider immer noch nicht so wie gewünscht.
Leider liegt das aber am System bzw. den Controls im .NET-Framework. Unter WPF gibt es dieses Problem zum Beispiel nicht.
Wie ihr die Aero Glass Effekte in WPF nutzen könnt, findet ihr etwa bei Robert Mühsig.
Ach ja, falls ihr nun Bereiche haben wollt, die nicht durchsichtig sind, könnt ihr zum Beispiel ein Panel nutzen. Das Ergebnis sieht in etwa so aus: