WPF+AE开发小结--TOCControl右键菜单删除图层

1.WPF项目中添加toccontrol控件,如何添加,网上有很多方法,可自行搜索,这里不再赘述,代码如下

<Window x:Class="AE.MainWindow"
         xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
         xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
         xmlns:esri="clr-namespace:ESRI.ArcGIS.Controls;assembly=ESRI.ArcGIS.AxControls" 
     <Grid>
	<WindowsFormsHost>                                             
            <esri:AxTOCControl x:Name="tocControl" Dock="Fill" OnMouseDown="tocControl_OnMouseDown">
	    </esri:AxTOCControl>
	</WindowsFormsHost>
    </Grid>
</Window>

2.实现右键删除菜单,在这里使用VS的ContextMenuStrip控件,后台添加此控件代码如下

public partial class MainWindow : Window
{
        private ContextMenuStrip cms = new ContextMenuStrip();
        
        public MainWindow()
        {
            InitializeComponent();
            cms.Items.Add("删除");
            cms.ItemClicked += new ToolStripItemClickedEventHandler(cms_ItemClicked);//点击事件
        }
}

3.①定义全局变量SelectedLayer_TOC,②在toccontrol的OnMouseDown事件中添加代码,③contextmenustrip的cms_ItemClicked事件中添加代码,如下

private void tocControl_OnMouseDown(object sender, ITOCControlEvents_OnMouseDownEvent e)
        {
            if (e.button == 2)
            {
                
                IBasicMap map = null;
                ILayer layer = null;
                System.Object other = null;
                System.Object index = null;
                esriTOCControlItem item = esriTOCControlItem.esriTOCControlItemNone;
                tocControl.HitTest(e.x,e.y, ref item,ref map,ref layer,ref other,ref index);
                if (item == esriTOCControlItem.esriTOCControlItemLayer)
                {
                    SelectedLayer_TOC = layer;                   
                    cms.Show(tocControl, e.x, e.y);
                }
            }
        }

private void cms_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
        {
            if (SelectedLayer_TOC != null)
            {
                调用DeleteLayer方法删除SelectedLayer_TOC
            }
        }



WPF Prism是微软新一代的界面开发框架,它具有丰富的功能和灵活的架构,广泛应用于桌面应用程序和Web应用程序的开发中。朝夕停车场项目是基于WPF Prism框架的一个实战项目,它实现了停车场的智能化管理,包括车辆进入和出场的自动识别,车位的实时监测和调度,以及财务管理和数据分析等功能。 该项目的源码包含了多个模块和组件,采用了MVVM架构和依赖注入技术,使代码组织和维护非常方便。项目中的主要模块包括: 1. Shell模块:该模块是整个应用程序的容器,它提供了主窗口和导航栏等界面组件,以及对其他模块的管理和协调。 2. Home模块:该模块实现了停车场的实时监控和调度功能,包括车位的占用和空闲状态显示,车辆进出场的记录和管理,以及停车位的预定和预约等功能。 3. Financial模块:该模块实现了停车场的财务管理和数据分析功能,包括车位租赁、停车费用计算和缴纳,以及停车场运营数据的统计和分析等功能。 4. Configuration模块:该模块实现了停车场的基础配置和参数管理功能,包括车位数量、收费标准和系统设置等功能。 5. Common模块:该模块包含了一些公共的模型和工具类,用于提供系统级别的服务和支持。 通过这个实战项目的源码学习,可以深入了解WPF Prism框架的应用及其MVVM架构和依赖注入的设计思想,也可以了解如何实现一个完整的智能化停车场管理系统。同时,该项目源码可以作为一个参考,通过在此基础上进行二次开发和定制,实现更加具体化的应用需求。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值