ArcGIS Engine - 添加内图廓线

3种方式(围绕所选元素、围绕所有元素和在页边距之内)
ArcGIS Engine - 添加内图廓线_第1张图片
添加内图廓线的三种方式:

		private void updateProperty()
        {
            //添加整理图廓线
            IEnvelope pEnvelope = new EnvelopeClass();
            FrameElement pFrameElement = new FrameElementClass();
            IFrameElement pIFrameElement = pFrameElement as IFrameElement;
            pIFrameElement.Border = new SymbolBorder();
            
            if (radioOut.Checked)
            {
                pEnvelope = pageLayoutControl.Page.PrintableBounds;
            }
            if(radioAll.Checked)
            {
                IGroupElement pGroupElement = new GroupElementClass();
                IGraphicsContainer pGraphicsContainer = pageLayoutControl.PageLayout as IGraphicsContainer;
                pGraphicsContainer.Reset();
                IElement pElement = pGraphicsContainer.Next();
                while (pElement != null)
                {
                    pGroupElement.AddElement(pElement);
                    pElement = pGraphicsContainer.Next();
                }
                if (pGroupElement.ElementCount != 0)
                {
                    //获取包含所有选择要素的最小矩形框
                    IElement pTagGroupElement = pGroupElement as IElement;
                    pTagGroupElement.QueryBounds(pageLayoutControl.ActiveView.ScreenDisplay as IDisplay, pEnvelope);

                }
            }
            if(radioIn.Checked)
            {
                IGroupElement pGroupElement = new GroupElementClass();
                IGraphicsContainer pGraphicsContainer = pageLayoutControl.PageLayout as IGraphicsContainer;
                IGraphicsContainerSelect pGraphicsContainerSelect = pageLayoutControl.PageLayout as IGraphicsContainerSelect;
                IEnumElement pEnumElement = pGraphicsContainerSelect.SelectedElements;
                pEnumElement.Reset();
                IElement pElement = pEnumElement.Next();

                while (pElement != null)
                {
                    pGroupElement.AddElement(pElement);
                    pElement = pEnumElement.Next();
                }
                if (pGroupElement.ElementCount != 0)
                {
                    //获取包含所有选择要素的最小矩形框
                    IElement pTagGroupElement = pGroupElement as IElement;
                    pTagGroupElement.QueryBounds(pageLayoutControl.ActiveView.ScreenDisplay as IDisplay, pEnvelope);
                }
            }

            try
            {
                pFrameElement.Geometry = pEnvelope;
                //添加图廓线
                pageLayoutControl.ActiveView.GraphicsContainer.AddElement(pFrameElement, 0);
                pageLayoutControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);
            }
            catch (System.Exception ex)
            {
                MessageBox.Show("设置图廓线失败!" + ex.Message);
            }
            
        }

你可能感兴趣的:(ArcGIS,Engine,c#)