AE:拷贝图像到PageLayout视图中

/// 拷贝到PageLayOut视图已选中数据框中

public void CopyMapToPageLayOutDataFrameforPrint(IMap pMapControlMap)
{
   
    //get Selected DataFrame
    IActiveView pAV = this.axPageLayoutControl1.ActiveView;
    IElement pElement = null;
    IMapFrame pMapFrame = null;
    IGraphicsContainerSelect pGraphicsContainerSelect = null;

    pGraphicsContainerSelect = pAV.GraphicsContainer as    IGraphicsContainerSelect;
    #region 如果PageLayOut的Dataframe选中
    if (pGraphicsContainerSelect.ElementSelectionCount > 0)
    {
        for (int i = 0; i < pGraphicsContainerSelect.ElementSelectionCount; i++)
        {
            pElement = pGraphicsContainerSelect.SelectedElement(i);
            if (pElement is IMapFrame)
            {
                pMapFrame = pElement as IMapFrame;
                break;
            }
        }
        if (pMapFrame != null)
        {
            //设置边框白色
            SimpleLineSymbolClass pSimLineSymb = new SimpleLineSymbolClass();
            IRgbColor rgbcolor = new RgbColorClass();
            rgbcolor.Red = 255;
            pSimLineSymb.Color = rgbcolor;

            ISymbolBorder sb = new SymbolBorderClass();
            sb.LineSymbol = pSimLineSymb;

            (pMapFrame as IFrameElement).Border = sb;
            //拷贝到打印视图中
            IObjectCopy pObjCopy = new ObjectCopyClass();
            IMap pMapFrom = pMapControlMap;
            IMap pMapTo = axPageLayoutControl1.ActiveView.FocusMap;
            object objectTo = pMapTo;

            pObjCopy.Overwrite(pMapFrom as object, ref objectTo);

            IMap pPageLayoutMap = axPageLayoutControl1.ActiveView.FocusMap;
            this.fullPageLayerOut(pPageLayoutMap, (pMapControlMap as IActiveView).Extent);

        }
        else
        {
            this.CopyMapToPageLayOutforPrint(pMapControlMap);
        }
    }
    #endregion
    else
    {
        this.CopyMapToPageLayOutforPrint(pMapControlMap);
    }
}

/// 删除原有边框和数据拷贝到Pagelayout视图中
public void CopyMapToPageLayOutforPrint(IMap pMapControlMap)
{
    try
    {

        //删除原有边框和数据
        this.axPageLayoutControl1.GraphicsContainer.DeleteAllElements();

        //拷贝到打印视图中
        IObjectCopy pObjCopy = new ObjectCopyClass();
        IMap pMapFrom = pMapControlMap;
        IMap pMapTo   = axPageLayoutControl1.ActiveView.FocusMap;
        object objectTo = pMapTo;
        pObjCopy.Overwrite(pMapFrom as object, ref objectTo);

        IMap pPageLayoutMap = axPageLayoutControl1.ActiveView.FocusMap;
        this.fullPageLayerOut(pPageLayoutMap, (pMapControlMap as IActiveView).Extent);

     
        //设置边框白色
        SimpleLineSymbolClass pSimLineSymbolClass = new SimpleLineSymbolClass();
        IRgbColor rgbcolor = new RgbColorClass();
        rgbcolor.Red = 255;
       
        pSimLineSymbolClass.Color = rgbcolor;

        ISymbolBorder pSymBorder = new SymbolBorderClass();
        pSymBorder.LineSymbol = pSimLineSymbolClass;

        IActiveView pAV = this.axPageLayoutControl1.ActiveView;
        IGraphicsContainer pGraphicsContainer = pAV.GraphicsContainer;

        pGraphicsContainer.Reset();
        IElement pElement = pGraphicsContainer.Next();

        while (pElement != null)
        {
            if (pElement is IMapFrame)
            {
                (pElement as IFrameElement).Border = pSymBorder;
                break;
            }
            pElement = pGraphicsContainer.Next();

        }

    }
    catch (Exception ee)
    {
        MessageBox.Show(ee.Message, "提示");
    }
}

/// 全显整个图像
private void fullPageLayerOut(IMap PageLayOutOfMap, IEnvelope MapControlMapOfExtend)
{
    try
    {
        IActiveView pAV = (IActiveView)PageLayOutOfMap;
        IDisplayTransformation displayTransformation = pAV.ScreenDisplay.DisplayTransformation;
        displayTransformation.VisibleBounds = MapControlMapOfExtend;
    }
    catch (Exception d)
    {
        System.Diagnostics.Debug.WriteLine(d.Message);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值