`
wangleifire
  • 浏览: 509412 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

System.Windows.Controls.TreeViewItem 加图标

    博客分类:
  • c#
阅读更多

写在前面:使用传统的TreeView,要增加个小功能,如三状态的TreeItem,经常都是需要很高的编程技术和大量的代码。而在.net新的界面设计中平台中,这个事情是很容易的,你要做的事就是发挥自己的想像力,组装手头上的小组件。

效果图
下图的图标功能,不是使用winform平台的ImageList和TreeView的组合做出来的,而是通过继承和自定义 TreeViewItem实体的效果,并且,代码量还真是少,关键点在于,TreeViewItem的Header的属性是object,也就是相当于别 的控件的Content,object表示,你可以任意放内容进去。
 

源代码
既然可以任意放内容进Header属性,那就放一个容器进去也没问题。正是出于这个想法,就放在一个StackPanel,它的内部 依次是TextBlock和Image,然后为Image指定设置的属性SelectedImage和UnselectedImage,这是 System.Windows.Media.ImageSource类型的对象。
最后,在项目中放一些图片来使用。如在根目录下,放一个Images文件夹,下面放多个图片。这个图片的生成操作都是嵌入的资源。
            for (int i = 0; i < 10; i++)
            {
                ImagedTreeViewItem _pitem = new ImagedTreeViewItem();
                _pitem.Text = "测试分支" + i;
                _pitem.SelectedImage = new BitmapImage(
                    new Uri("pack://application:,,/Images/OPENFOLD.BMP"));
                _pitem.UnselectedImage = new BitmapImage(
                    new Uri("pack://application:,,/Images/CLSDFOLD.BMP"));
                treeView1.Items.Add(_pitem);

                for (int j = 0; j < 5; j++)
                {
                    ImagedTreeViewItem _item = new ImagedTreeViewItem();
                    _item.Text = "测试分支" + j;
                    _item.SelectedImage = new BitmapImage(
                        new Uri("pack://application:,,/Images/OPENFOLD.BMP"));
                    _item.UnselectedImage = new BitmapImage(
                        new Uri("pack://application:,,/Images/CLSDFOLD.BMP"));
                    _pitem.Items.Add(_item);
                }
            }

分享到:
评论

相关推荐

    Sliverlight中动态生成TreeView产生事件

    treeViewItem.MouseLeftButtonDown += new System.Windows.Input.MouseButtonEventHandler(treeViewItem_MouseLeftButtonDown); ``` 3. **事件处理函数** 在上面的代码中,`treeViewItem_Tap`和`treeViewItem_...

    WPF自定义TreeViewItem 样式

    在Windows Presentation Foundation (WPF) 中,`TreeView`控件是一种常见的用于展示层次结构数据的视图。在默认情况下,`TreeView`控件的每个节点(`TreeViewItem`)具有预设的样式,但有时我们需要根据项目需求进行...

    silverlight TreeView简单示例1

    using System.Windows.Controls; // 创建一个新的TreeView TreeView treeView = new TreeView(); // 创建根节点 TreeViewItem rootItem = new TreeViewItem(); rootItem.Header = "根节点"; // 添加子节点 ...

    计算机软件-商业源码-44 快速删除TreeView控件中的内容.zip

    在WPF中,对应的类是TreeView,它是System.Windows.Controls命名空间的一部分。 删除TreeView控件中的内容主要涉及到两个关键步骤:遍历树节点和删除节点。在MFC中,可以使用CTreeCtrl的GetRootItem()函数获取根...

    TreeView的简单例子

    在WPF中,则通过`System.Windows.Controls.TreeView`类表示。 2. **添加节点** 在代码中,我们可以通过`TreeViewNode`对象来添加节点。在Windows Forms中,使用`TreeView.Nodes.Add()`方法添加根节点,然后使用`...

    树的控件的使用程序

    在Windows应用程序中,例如使用.NET Framework的WinForms或WPF,树控件分别对应于`System.Windows.Forms.TreeView`和`System.Windows.Controls.TreeView`类。在这些控件中,每个节点都可以包含子节点,形成一个可...

    wpf TreeView控件基本操作

    using System.Windows.Controls; ``` 然后,你可以通过以下代码来添加新的TreeViewItem: ```csharp // 创建一个新的TreeViewItem TreeViewItem newItem = new TreeViewItem(); newItem.Header = "新节点"; // ...

    商业编程-源码-树控件如何响应双击.zip

    在Windows应用程序中,如使用C++、C#或VB.NET等语言,树控件(TreeView)通常是一个系统提供的控件,如Windows Forms的`System.Windows.Forms.TreeView`或WPF的`System.Windows.Controls.TreeView`。在Web应用中,...

    vector-tree.rar_WPF tree_Wpf 图片控件_tree

    但是,系统图标通常需要通过`System.Drawing.Icon`类或者.NET Framework的`KnownFolderIcon`枚举来获取。在WPF中,我们可以利用`ImageSource`转换器将这些系统图标转化为可显示的图像资源。例如,`ShellIcon`类可以...

    WPF TreeView拖拽节点变换位置

    在Windows Presentation Foundation (WPF) 中,`TreeView`控件是一种常见的用户界面元素,用于展示层级结构的数据。本文将深入探讨如何实现`TreeView`中节点的拖拽功能,允许用户通过拖放操作来改变节点的位置,从而...

    TreeListViewDemo_TreeList对应关系的实现_

    对于Windows Forms,这通常涉及到`System.Windows.Forms`命名空间,而对于WPF可能需要`System.Windows.Controls`。`ObjectListView`库提供了一个增强版的`TreeListView`控件,它在.NET Framework中提供了更多的功能...

    最漂亮的treeview(wpf)

    在Windows Presentation Foundation (WPF) 中,TreeView是一个用于展示层级数据的强大控件。它允许用户以树状结构浏览和操作数据,广泛应用于文件系统、组织结构或者任何具有层次关系的数据展示。标题“最漂亮的...

    WPF入门实例——WPF目录树实例

    在本文中,我们将深入探讨WPF(Windows Presentation Foundation)中的目录树实现,特别是基于`TreeView`控件的实例。WPF是.NET Framework的一部分,它提供了一种强大的UI设计和开发工具,用于创建丰富的桌面应用...

    Silverlight使用XmlReader读取XML并加载到TreeView

    这个模板定义了如何将数据绑定到TreeViewItem的控件。 5. **绑定数据到TreeView**:创建一个ObservableCollection来存储构建好的数据模型,然后将其设置为TreeView的ItemsSource属性。这样,TreeView会自动根据数据...

    WPF Treeview 点击右键弹出菜单,同时鼠标点击处的TreeViewItem被选中

    有时候我们需要在...最基本的思路是,在TreeView右键点击的事件发生时,我们遍历它所有的Item,包括子Item,获取Item所对应的TreeViewItem控件的边界Rect,然后调用Rect的Contains方法判断鼠标是否在该范围内。

    C# 仿WINDOWS资源管理器

    在本文中,我们将深入探讨如何使用C#编程语言来创建一个仿Windows资源管理器的应用程序,特别是关注其拖放功能的实现。Windows资源管理器是操作系统中的一个核心组件,它允许用户浏览、组织和操作文件系统中的文件和...

    wpf tree 的一些资料

    1. **TreeView 控件**: WPF Tree的基础是TreeView控件,它是System.Windows.Controls命名空间的一部分。TreeView通过HierarchicalDataTemplate来展示数据,可以显示多级嵌套的节点,每个节点可以有子节点,形成树状...

    Delphi11.3 FMX的TreeView用于树状选项列表的一些常用方法

    Delphi11.3运行成功,FMX的TreeView使用方法跟VCL的完全不一样,这里只写了用作树状选项列表的一些常用使用方法,比如权限管理这块就需要用选项列表,列出某个用户有哪些权限。FMX的资料太少,都要自己去研究。

    Wpf treeview 绑定数据库Access

    在Windows Presentation Foundation (WPF) 中,TreeView是一个常用的控件,用于展示层次结构的数据。本篇文章将深入探讨如何将TreeView与Access数据库绑定,以便在界面上动态地展示数据库中的数据结构。 首先,我们...

    WPF_TreeView_Drag_and_Drop_speciesg9e_WPF界面_drop_wpftreeviewdrop

    在本文中,我们将深入探讨如何在Windows Presentation Foundation (WPF) 中实现TreeView控件的拖放功能。标题“WPF_TreeView_Drag_and_Drop_speciesg9e_WPF界面_drop_wpftreeviewdrop”暗示了这是一个关于WPF ...

Global site tag (gtag.js) - Google Analytics