Ejemplo n.º 1
0
        private void axPageLayoutControl1_OnDoubleClick(object sender, IPageLayoutControlEvents_OnDoubleClickEvent e)
        {
            if (m_element != null)
            {
                IElementProperties pElementProp = m_element as IElementProperties;

                if (pElementProp.Type == "Text")
                {
                    ITextElement  pTextElement = pElementProp as ITextElement;
                    frmTextSymbol frmText      = new frmTextSymbol(ref pTextElement);
                    frmText.ShowDialog();
                    pElementProp = pTextElement as IElementProperties;
                    m_pageLayoutControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphicSelection, null, null);
                    m_pageLayoutControl.ActiveView.Refresh();
                }
                else if (pElementProp.Type == "Map Surround Frame")
                {
                    IMapSurroundFrame pMapSurrounFrame = pElementProp as IMapSurroundFrame;
                    if (pMapSurrounFrame.MapSurround.Name == "Legend")
                    {
                        frmLegendWizard frmLegedWizard = new frmLegendWizard(m_Map, m_pageLayoutControl, pMapSurrounFrame);
                        frmLegedWizard.ShowDialog(); //修改图例属性
                    }
                    else if (pMapSurrounFrame.MapSurround.Name == "Alternating Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Hollow Scale Bar" ||
                             pMapSurrounFrame.MapSurround.Name == "Double lternating Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Scale Line" ||
                             pMapSurrounFrame.MapSurround.Name == "Single Division Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Stepped Scale Line")
                    {
                        ESRI.ArcGIS.Controls.esriSymbologyStyleClass styleClass = esriSymbologyStyleClass.esriStyleClassScaleBars;
                        frmLegendItemSymbol frmScaleBar     = new frmLegendItemSymbol();
                        IStyleGalleryItem   pstyGallertItem = frmScaleBar.GetItem(styleClass);//获取样式
                        IScaleBar           pscaleBar       = pMapSurrounFrame.MapSurround as IScaleBar;
                        esriUnits           punits          = pscaleBar.Units;
                        if (pstyGallertItem != null)
                        {
                            pscaleBar = (IScaleBar)pstyGallertItem.Item;
                        }
                        else
                        {
                            return;
                        }
                        pscaleBar.Map   = m_pageLayoutControl.ActiveView.FocusMap; //重新设置比例尺依附的地图及单位
                        pscaleBar.Units = punits;
                        pscaleBar.UseMapSettings();
                        pscaleBar.Refresh();
                        pMapSurrounFrame.MapSurround = pscaleBar as IMapSurround;                    //旧的比例尺样式转换为新的比例尺样式
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null); //刷新
                    }
                    else if (pMapSurrounFrame.MapSurround.Name == "Scale Text")
                    {
                        frmLegendItemSymbol frmTextScal     = new frmLegendItemSymbol();
                        IStyleGalleryItem   pStyGalleryItem = frmTextScal.GetItem(esriSymbologyStyleClass.esriStyleClassScaleTexts);
                        IScaleText          pScaleText      = pMapSurrounFrame.MapSurround as IScaleText;
                        esriUnits           pUnits          = pScaleText.MapUnits;
                        if (pStyGalleryItem != null)
                        {
                            pScaleText = (IScaleText)pStyGalleryItem.Item;
                        }
                        else
                        {
                            return;
                        }
                        pScaleText.Map               = m_pageLayoutControl.ActiveView.FocusMap;
                        pScaleText.MapUnits          = pScaleText.MapUnits;
                        pMapSurrounFrame.MapSurround = pScaleText as IMapSurround;
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
                    }
                    else if (pMapSurrounFrame.MapSurround.Name.Trim() == "North Arrow")
                    {
                        INorthArrow         northArrow      = pMapSurrounFrame.MapSurround as INorthArrow;
                        frmNorthArrowSymbol frmNorthArrow   = new frmNorthArrowSymbol();
                        IStyleGalleryItem   pstyGallertItem = frmNorthArrow.GetItem(esriSymbologyStyleClass.esriStyleClassNorthArrows);;
                        if (pstyGallertItem != null)
                        {
                            northArrow = (INorthArrow)pstyGallertItem.Item;
                            northArrow.CalibrationAngle = frmNorthArrow.Angle();
                        }
                        else
                        {
                            return;
                        }
                        pMapSurrounFrame.MapSurround = (IMapSurround)northArrow;
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
                    }
                }
            }
        }
Ejemplo n.º 2
0
        private void axPageLayoutControl1_OnDoubleClick(object sender, IPageLayoutControlEvents_OnDoubleClickEvent e)
        {
            if (m_element != null)
            {
                IElementProperties pElementProp = m_element as IElementProperties;

                if (pElementProp.Type == "Text")
                {
                    ITextElement pTextElement = pElementProp as ITextElement;
                    frmTextSymbol frmText = new frmTextSymbol(ref pTextElement);
                    frmText.ShowDialog();
                    pElementProp = pTextElement as IElementProperties;
                    m_pageLayoutControl.ActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphicSelection, null, null);
                    m_pageLayoutControl.ActiveView.Refresh();
                }
                else if (pElementProp.Type == "Map Surround Frame")
                {
                    IMapSurroundFrame pMapSurrounFrame = pElementProp as IMapSurroundFrame;
                    if (pMapSurrounFrame.MapSurround.Name == "Legend")
                    {
                        frmLegendWizard frmLegedWizard = new frmLegendWizard(m_Map, m_pageLayoutControl, pMapSurrounFrame);
                        frmLegedWizard.ShowDialog(); //�޸�ͼ������

                    }
                    else if (pMapSurrounFrame.MapSurround.Name == "Alternating Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Hollow Scale Bar" ||
                        pMapSurrounFrame.MapSurround.Name == "Double lternating Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Scale Line"||
                       pMapSurrounFrame.MapSurround.Name == "Single Division Scale Bar" || pMapSurrounFrame.MapSurround.Name == "Stepped Scale Line")
                    {
                        ESRI.ArcGIS.Controls.esriSymbologyStyleClass styleClass = esriSymbologyStyleClass.esriStyleClassScaleBars;
                        frmLegendItemSymbol frmScaleBar = new frmLegendItemSymbol();
                        IStyleGalleryItem pstyGallertItem = frmScaleBar.GetItem(styleClass);//��ȡ��ʽ
                        IScaleBar pscaleBar = pMapSurrounFrame.MapSurround as IScaleBar;
                        esriUnits punits = pscaleBar.Units;
                        if (pstyGallertItem != null)

                            pscaleBar = (IScaleBar)pstyGallertItem.Item;
                        else
                            return;
                        pscaleBar.Map = m_pageLayoutControl.ActiveView.FocusMap; //�������ñ����������ĵ�ͼ����λ
                        pscaleBar.Units = punits;
                        pscaleBar.UseMapSettings();
                        pscaleBar.Refresh();
                        pMapSurrounFrame.MapSurround = pscaleBar as IMapSurround;//�ɵı�������ʽת��Ϊ�µı�������ʽ
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);//ˢ��

                    }
                    else if (pMapSurrounFrame.MapSurround.Name == "Scale Text")
                    {
                        frmLegendItemSymbol frmTextScal = new frmLegendItemSymbol();
                        IStyleGalleryItem pStyGalleryItem = frmTextScal.GetItem(esriSymbologyStyleClass.esriStyleClassScaleTexts);
                        IScaleText pScaleText = pMapSurrounFrame.MapSurround as IScaleText;
                        esriUnits pUnits = pScaleText.MapUnits;
                        if (pStyGalleryItem != null)
                            pScaleText = (IScaleText)pStyGalleryItem.Item;
                        else
                            return;
                        pScaleText.Map = m_pageLayoutControl.ActiveView.FocusMap;
                        pScaleText.MapUnits = pScaleText.MapUnits;
                        pMapSurrounFrame.MapSurround = pScaleText as IMapSurround;
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
                    }
                    else if (pMapSurrounFrame.MapSurround.Name.Trim() == "North Arrow")
                    {
                        INorthArrow northArrow = pMapSurrounFrame.MapSurround as INorthArrow;
                        frmNorthArrowSymbol frmNorthArrow = new frmNorthArrowSymbol();
                        IStyleGalleryItem pstyGallertItem = frmNorthArrow.GetItem(esriSymbologyStyleClass.esriStyleClassNorthArrows); ;
                        if (pstyGallertItem != null)
                        {
                            northArrow = (INorthArrow)pstyGallertItem.Item;
                            northArrow.CalibrationAngle = frmNorthArrow.Angle();
                        }
                        else
                        {
                            return;
                        }
                        pMapSurrounFrame.MapSurround = (IMapSurround)northArrow;
                        m_pageLayoutControl.Refresh(esriViewDrawPhase.esriViewGraphics, null, null);
                    }
                }
            }
        }