C# WPF上位机开发(树形控件在地图软件中的应用)

【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

前面我们聊过图形软件的开发方法。实际上,对于绘制的图形,我们一般还会用树形控件管理一下。举个例子,一个地图当中可能有很多的组件。比如说点、线、圆形、长方形、图片等等。每一个图形都有自己特定的含义,这个时候,如果可以用树型控件来管理就非常的方便。

比如说,我们在左边选择图形的时候,canvas显示图形同时高亮,右边也会一起显示当前图形可以操作的各种属性配置。这都是gui编辑工具的常用操作。

1、xaml文件中增加图形设计

xaml文件中添加控件比较简单。主要的控件就是TreeView和TreeViewItem。其中TreeView相当于整棵树,TreeViewItem相当于叶子节点。当然,如果显示的层级比较多,那么TreeViewItem可以嵌套TreeViewItem。

<Window x:Class="WpfApp.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp"
        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <TreeView Name="treeView" Margin="10">
            <!-- 添加树节点 -->
            <TreeViewItem Header="Map">
                <TreeViewItem Header="point">
                    <TreeViewItem Header="point1"/>
                    <TreeViewItem Header="point2"/>
                    <TreeViewItem Header="point3"/>
                </TreeViewItem>
                <TreeViewItem Header="line">
                    <TreeViewItem Header="line1"/>
                    <TreeViewItem Header="line2"/>
                </TreeViewItem>
                <TreeViewItem Header="circle">
                    <TreeViewItem Header="circle1"/>
                    <TreeViewItem Header="circle2"/>
                </TreeViewItem>
                <TreeViewItem Header="rectangle">
                    <TreeViewItem Header="rectangle1"/>
                    <TreeViewItem Header="rectangle2"/>
                </TreeViewItem>
                <TreeViewItem Header="picture">
                    <TreeViewItem Header="picture1"/>
                    <TreeViewItem Header="picture2"/>
                </TreeViewItem>
            </TreeViewItem>
        </TreeView>
    </Grid>
</Window>

2、代码中动态添加叶子节点

除了在xaml文件中静态添加TreeViewItem之外,还可以通过代码编写的方法,动态添加TreeViewItem。添加的方法也不复杂,只需要在TreeViewItem生成之后,添加到treeView变量下面就可以了。

        public MainWindow()
        {
            InitializeComponent();

            // init node here
            TreeViewItem newNode = new TreeViewItem();
            newNode.Header = "New Node";
            treeView.Items.Add(newNode);
        }
相关推荐
△曉風殘月〆1 小时前
WPF MVVM入门系列教程(二、依赖属性)
c#·wpf·mvvm
XiaoLeisj2 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
励志成为嵌入式工程师3 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
逐·風3 小时前
unity关于自定义渲染、内存管理、性能调优、复杂物理模拟、并行计算以及插件开发
前端·unity·c#
捕鲸叉3 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer3 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq3 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
记录成长java5 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
前端青山5 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js
睡觉谁叫~~~5 小时前
一文解秘Rust如何与Java互操作
java·开发语言·后端·rust