2010-12-16 27 views
8

cuando creo un ListView en la vista de detalles en VS2008, crea una vista de lista bastante antigua. No tiene ninguno de los elegantes efectos de desplazamiento y borde azul frío que (por ejemplo) tiene el explorador de archivos en WinVista y Win7. Ver imagen por ejemplo: alt textC# Estilo de Windows 7/Vista ListView

Para resumir, ¿cómo puedo obtener un ListView en C# VS2008 como el de la imagen de arriba? (Vista de lista VS2008 a la derecha para la comparación)

Gracias

Respuesta

13

intente llamar SetWindowTheme

De esta manera:

[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

Gracias, funcionó a la perfección :) – Ozzy

+0

@GvS: ¿Hay alguna manera de hacer esto para toda la aplicación? Algo así como Applicaiton.EnableVisualStyles()? –

+0

Es posible que también desee establecer 'HotTracking' para habilitar el estilo fresco de desplazamiento. @JohnGietzen Solo creo que puedo pensar en un [filtro de mensajes personalizados] (http://msdn.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx) buscando WM_CREATE. – jnm2

0

¿Ha comprobado la Windows API Code Pack? tiene muchos controles de estilo Win7. Creo que tiene lo que quieres.

Cuestiones relacionadas