在.NET中使用TreeView组件时,我看到了左树的外观。 我怎样才能得到我的.NET TreeView的正确的树(Windows本机看)的外观?
我特别想得到的是“三angular形”节点处理和蓝色的“泡泡”select广场。
您需要P / Invoke调用SetWindowTheme
传递树的窗口句柄,并使用“explorer”作为主题。
将以下代码粘贴到项目中的新类中,编译并使用此自定义控件而不是内置的TreeView
控件。
public class NativeTreeView : System.Windows.Forms.TreeView { [DllImport("uxtheme.dll", CharSet = CharSet.Unicode)] private extern static int SetWindowTheme(IntPtr hWnd, string pszSubAppName, string pszSubIdList); protected override void CreateHandle() { base.CreateHandle(); SetWindowTheme(this.Handle, "explorer", null); } }
Public Class NativeTreeView : Inherits TreeView Private Declare Unicode Function SetWindowTheme Lib "uxtheme.dll" (hWnd As IntPtr, pszSubAppName As String, pszSubIdList As String) As Integer Protected Overrides Sub CreateHandle() MyBase.CreateHandle() SetWindowTheme(Me.Handle, "Explorer", Nothing) End Sub End Class
请注意,这个技巧对于ListView
控件来说也是一样的。