WPF 中TreeView 的动态加载和自定义布局(图片+文字)

        <TreeView Name="system_tree" Grid.Column="0" Grid.Row="0"  Background="#FF116EAA" Padding="0"   ItemContainerStyle="{StaticResource myLBStyle}" >
                <!--<TreeViewItem>
            </TreeViewItem>-->
            </TreeView>

1 先定义一个树控件在xmal文件中,在cs文件中进行动态的加载树的内容


2 为每一个树节点进行布局的设置,你可以设计成任何你想要的布局,返回你想要的stackpanel 即可

  private StackPanel createTreeViewItem(string value,BitmapImage btmapImg)
        {
            StackPanel panel = new StackPanel();
            panel.Height = 45;
            panel.Width = 100;
            panel.Orientation = Orientation.Horizontal;

            if (btmapImg != null)
            {
                Image img = new Image();
                img.Source = btmapImg;
                panel.Children.Add(img);
            }

            Label lb = new Label();
            lb.FontSize = 17;
            lb.Foreground = new SolidColorBrush(Color.FromRgb(255,59,59));
            lb.Content = value;
            lb.VerticalAlignment = VerticalAlignment.Center;
            lb.HorizontalAlignment = HorizontalAlignment.Center;
            lb.Foreground = new SolidColorBrush(Colors.White);
            panel.Children.Add(lb);
            return panel;
        }

3 按照你的需求,可以添加任意的层级,每一个层级都是一个我们设计的stackpanel ,这里我是设计了一个图片+一个文字标签的布局

  private StackPanel createTreeViewItem(string value,BitmapImage btmapImg)
        {
            StackPanel panel = new StackPanel();
            panel.Height = 45;
            panel.Width = 100;
            panel.Orientation = Orientation.Horizontal;

            if (btmapImg != null)
            {
                Image img = new Image();
                img.Source = btmapImg;
                panel.Children.Add(img);
            }

            Label lb = new Label();
            lb.FontSize = 17;
            lb.Foreground = new SolidColorBrush(Color.FromRgb(255,59,59));
            lb.Content = value;
            lb.VerticalAlignment = VerticalAlignment.Center;
            lb.HorizontalAlignment = HorizontalAlignment.Center;
            lb.Foreground = new SolidColorBrush(Colors.White);
            panel.Children.Add(lb);
            return panel;
        }


4 上图




WPF(Windows Presentation Foundation)是微软的一种用户界面技术,可用于创建各种Windows应用程序。TreeViewWPF的一种控件,用于显示层次结构的数据。 当我们需要自定义TreeView时,可以使用WPF提供的各种功能和特性来实现。下面是一些实现自定义TreeView的方法: 1. 自定义节点的外观:可以使用WPF的样式和模板来修改节点的外观,例如更改节点的背景颜色、字体样式等。可以使用TreeView控件的ItemTemplate属性来为每个节点定义一个数据模板。 2. 添加功能按钮:可以为TreeView控件添加自己需要的功能按钮,比如展开/折叠按钮、添加/删除节点按钮等。可以使用WPF的Button控件实现这些按钮,并与TreeView的事件关联。 3. 添加交互行为:可以通过使用WPF提供的命令功能,为TreeView控件添加交互行为。例如,可以为每个节点添加一个命令,当用户双击节点时执行该命令。 4. 实现节点的拖拽和放置:可以通过使用WPF的拖放功能,实现节点的拖拽和放置。可以为每个节点添加一个DragStarted事件,当用户拖动节点时触发该事件,并将节点的数据作为数据对象传递给拖动操作。同时,可以使用TreeViewDropTarget控件作为拖放目标,通过处理Drop事件实现节点的放置。 总的来说,WPF提供了丰富的功能和特性,使我们能够很容易地自定义TreeView控件。通过使用WPF的样式、模板、命令和拖放功能,我们可以实现一个完全符合我们需求的TreeView控件,并为用户提供更好的用户体验。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值