• c# WPF——创建带有图标的TreeView


    1.使用数据模板对TreeViewItem进行更改

    2.xaml中重写TreeviewItem的控件模板

    3.继承TreeViewItem(TreeView中的元素),后台进行控件重写。(介绍此方法)

    代码:

         ImageSource iconSource;//图标对象
            TextBlock textBlock;
            Image icon;//treeviewitem中的图标
    
            public TreeViewWithIcons()
            {
                StackPanel stack = new StackPanel();
                stack.Orientation = Orientation.Horizontal;
                Header = stack;
                //Uncomment this code If you want to add an Image after the Node-HeaderText
                //textBlock = new TextBlock();
                //textBlock.VerticalAlignment = VerticalAlignment.Center;
                //stack.Children.Add(textBlock);
                icon = new Image();
                icon.VerticalAlignment = VerticalAlignment.Center;
                icon.Height = 10;
                icon.Width = 10;
                icon.Margin = new Thickness(0, 0, 4, 0);
                icon.Source = iconSource;
                stack.Children.Add(icon);
                //Add the HeaderText After Adding the icon
                textBlock = new TextBlock();
                textBlock.VerticalAlignment = VerticalAlignment.Center;
                stack.Children.Add(textBlock);
            }

    将TreeviewItem的header设置成stackpanel,将图标和文本以横向填充进该stackpanel

    完整代码:

    public class TreeViewWithIcons : TreeViewItem
        {
            ImageSource iconSource;
            TextBlock textBlock;
            Image icon;
    
            public TreeViewWithIcons()
            {
                StackPanel stack = new StackPanel();
                stack.Orientation = Orientation.Horizontal;
                Header = stack;
                //Uncomment this code If you want to add an Image after the Node-HeaderText
                //textBlock = new TextBlock();
                //textBlock.VerticalAlignment = VerticalAlignment.Center;
                //stack.Children.Add(textBlock);
                icon = new Image();
                icon.VerticalAlignment = VerticalAlignment.Center;
                icon.Height = 10;
                icon.Width = 10;
                icon.Margin = new Thickness(0, 0, 4, 0);
                icon.Source = iconSource;
                stack.Children.Add(icon);
                //Add the HeaderText After Adding the icon
                textBlock = new TextBlock();
                textBlock.VerticalAlignment = VerticalAlignment.Center;
                stack.Children.Add(textBlock);
            }
    
            public ImageSource Icon
            {
                set
                {
                    iconSource = value;
                    icon.Source = iconSource;
                }
                get
                {
                    return iconSource;
                }
            }
    
            protected override void OnUnselected(RoutedEventArgs args)
            {
                base.OnUnselected(args);
                icon.Source = iconSource;
            }
    
            protected override void OnSelected(RoutedEventArgs args)
            {
                base.OnSelected(args);
                icon.Source = iconSource;
            }
    
            /// <summary>
            /// Gets/Sets the HeaderText of TreeViewWithIcons
            /// </summary>
            public string HeaderText
            {
                set
                {
                    textBlock.Text = value;
                }
                get
                {
                    return textBlock.Text;
                }
            }
        }
  • 相关阅读:
    npm install、npm install --save与npm install --save-dev、npm install -g区别
    react的几种loader
    React的Sass配置
    react中使用css的7种方式
    linux安装字体
    反向代理和正向代理的解释
    开源Odoo ERP13.2版本模块功能
    Git+码云构建自己的共享仓库
    .Net Core的依赖注入
    libpcap使用(1)
  • 原文地址:https://www.cnblogs.com/qwqwQAQ/p/11980514.html
Copyright © 2020-2023  润新知