2010-12-16 7 views
8

Wenn ich eine ListView in der Detailansicht in VS2008 erstellen, erstellt es eine ziemlich alt aussehende Listview. Es hat keine der ausgefallenen Hover-Effekte und coole blaue Rahmen, die (zum Beispiel) den Datei-Explorer in WinVista und Win7 haben. Siehe Bild zum Beispiel: alt textC# Windows7/Vista Stil ListView

Zusammenfassend, wie kann ich ein ListView in C# VS2008 wie das im Bild oben aussehen? (VS2008 Listenansicht auf der rechten Seite zum Vergleich)

Dank

Antwort

13

Try SetWindowTheme

Like this Aufruf:

[DllImport("uxtheme.dll", ExactSpelling=true, CharSet=CharSet.Unicode)] 
    private static extern int SetWindowTheme(IntPtr hwnd, string pszSubAppName, string pszSubIdList); 

    // The constructor: 
    public MyForm() { 
     SetWindowTheme(this.listView1.Handle, "Explorer", null); 
    } 
+0

Danke, hat perfekt funktioniert :) – Ozzy

+0

@GvS: Gibt es eine Möglichkeit, dies für Ihre gesamte App zu tun? Etwas wie Applicaiton.EnableVisualStyles()? –

+0

Sie können auch 'HotTracking' einstellen, um den coolen Hover-Stil zu aktivieren. @JohnGietzen Nur denke ich kann sich vorstellen, dass ein [custom message filter] (http://msdn.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx) nach WM_CREATE sucht. – jnm2

0

Haben Sie die Windows API Code Pack überprüft? Es hat viele Win7 Style Controls. Ich denke es hat was du willst.