Вам нужно P / Invoke для вызова SetWindowTheme
, передавая дескриптор окна дерева и использовать «проводник» в качестве темы.
Вставьте следующий код в новый классв вашем проекте скомпилируйте и используйте этот пользовательский элемент управления вместо встроенного TreeView
.
C #:
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);
}
}
VB.NET:
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
.