2010-12-16 19 views
8

VS2008'de ayrıntılı bir ListView görünümü oluşturduğumda, oldukça eski görünümlü bir liste görünümü oluşturur. Herhangi bir fantezi vurgulu efektleri ve (örneğin) WinVista ve Win7'de dosya gezgini olan serin mavi kenarlığı yoktur. Örneğin, bakınız: alt textC# Windows7/Vista stili ListView

Özetle, C# VS2008'deki bir ListView'i yukarıdaki resimdeki gibi nasıl görebilirim? (Karşılaştırma için sağdaki VS2008 listview)

Teşekkür

cevap

13

deneyin Bunun gibi SetWindowTheme

arayarak:

[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

Teşekkürler, mükemmel çalıştı :) – Ozzy

+0

@GvS: Tüm uygulamanız için bunu yapmanın bir yolu var mı? Applicaiton.EnableVisualStyles() gibi bir şey? –

+0

Ayrıca, cool hover stilini etkinleştirmek için 'HotTracking' öğesini de ayarlamak isteyebilirsiniz. @JohnGietzen Sadece düşünebildiğimi düşünüyorum [özel mesaj filtresi] (http://msdn.microsoft.com/en-us/library/system.windows.forms.application.addmessagefilter.aspx) WM_CREATE için arıyor. – jnm2

0

Eğer Windows API Code Pack kontrol ettiniz mi? Birçok Win7 tarzı kontrol vardır. Bence istediğin şey var.