C# TreeView控件与utorrent控件类似

C# TreeView控件与utorrent控件类似,c#,.net,wpf,winforms,treeview,C#,.net,Wpf,Winforms,Treeview,在uTorrent 2.2中,当选择treeview节点时,该节点具有类似按钮的外观。这使得.NETTreeView控件对我来说似乎太不合适了。现在我知道UTRORAND是用C++编写的,但是有人知道他们是如何做到这一点的,或者有人知道在那里的图书馆就足够了吗? 这是一个标准的Windows TreeView控件,应用了Win7“Explorer”视觉样式。通过更改控件的主题,您可以在自己的程序中轻松获得一个控件。向项目中添加一个新类并粘贴如下所示的代码。编译。将新控件从工具箱顶部拖到窗体上 u

在uTorrent 2.2中,当选择treeview节点时,该节点具有类似按钮的外观。这使得.NETTreeView控件对我来说似乎太不合适了。现在我知道UTRORAND是用C++编写的,但是有人知道他们是如何做到这一点的,或者有人知道在那里的图书馆就足够了吗?

这是一个标准的Windows TreeView控件,应用了Win7“Explorer”视觉样式。通过更改控件的主题,您可以在自己的程序中轻松获得一个控件。向项目中添加一个新类并粘贴如下所示的代码。编译。将新控件从工具箱顶部拖到窗体上

using System;
using System.Windows.Forms;
using System.Runtime.InteropServices;

class MyTreeView : TreeView {
    protected override void OnHandleCreated(EventArgs e) {
        if (Environment.OSVersion.Version.Major >= 6) {
            SetWindowTheme(this.Handle, "Explorer", null);
        }
        base.OnHandleCreated(e);
    }
    [DllImportAttribute("uxtheme.dll", CharSet = CharSet.Auto)]
    private static extern int SetWindowTheme(IntPtr hWnd, string appname, string idlist);
}
除非使用WindowsFormHost类,否则WPF无法直接实现这一点