Ich denke jeder .NET Coder kennt das Problem , man schreibt eine Anwendung , und verwendet Controls wie z.B die ListView , welche im Explorer unter Vista & Windows 7 besser aussieht.
Das ganze Problem lässt sich allerdings mit einer API umgehen , die ich zufällig in dem neuem Win7 .NET SDK Entdeckt habe.
Es müsste abwärtskompatibel sein , garantieren kann ich es aber nicht. Probiert es einfach aus
Screenshot (vorher):
Screenshot (danach):
Benötigte API:
Code:
[DllImport("uxtheme.dll", CharSet = CharSet.Unicode, ExactSpelling = true)]
private static extern int SetWindowTheme(IntPtr hWnd, string appName, string partList);
Um das Theme für ein bestimmtes Control zu übernehmen muss ein Aufruf erfolgen , dabei ist es wichtige das es in dem Konstruktor der Anwendung bzw der Programm Klasse steht.
Nicht vergessen ein Namensimport für die Funktion "DllImport"
Code:
using System.Runtime.InteropServices;
Aufruf:
Code:
SetWindowTheme(this.listView1.Handle, "explorer", null);
Des weiteren möchte ich noch erwähnen das dieser Trick bei fast allen Controls anwendbar ist, allerdings nur bei einigen merkt man einen krassen unterschied wie z.B bei der ListView oder der TreeView.
MfG , ThePapst