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

Posted on 2017-03-27 10:45  阿牛aniu  阅读(553)  评论(0)    收藏  举报

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
            }
        }

 转载说明:如转载,请写明出处。

博客园  ©  2004-2026
浙公网安备 33010602011771号 浙ICP备2021040463号-3