ArcGIS Engine布局视图插入图片

该代码段展示了如何在ArcGISAxPageLayout中插入图片,包括创建PictureElement对象,设置图片的维护比例,定位图片并调整其几何形状。然而,提到图片大小和位置的精确控制仍有待优化。
摘要由CSDN通过智能技术生成


        public static void addPictureElement(AxPageLayoutControl axPageLayoutControl, string fileName)
        {
            //创建PageLayout对象
            IPageLayout pPageLayout = axPageLayoutControl.PageLayout;
            //将PageLayout强转成IActiveView
      
            IGraphicsContainer pGraphicsContainer = (IGraphicsContainer)pPageLayout;

            IActiveView pActiveView = (IActiveView)pPageLayout;

            IPictureElement pPictureElement = new PngPictureElementClass();     

            pPictureElement.ImportPictureFromFile(fileName);
       
            //图片在缩放的时候长宽保持比例
            pPictureElement.MaintainAspectRatio = true;
            //添加图片的附加描述信息
            //string ms=pPictureElement.PictureDescription ;
            //确定这张图片是否会被保存到mxd上
            //pPictureElement.SavePictureInDocument = true;

            IFrameElement pFrameElement = axPageLayoutControl.GraphicsContainer.FindFrame(axPageLayoutControl.ActiveView.FocusMap);

            IElement pElement;
            pElement = pFrameElement as IElement;
            IEnvelope pEnvelop = pElement.Geometry.Envelope;

            IElement pElementPic = pPictureElement as IElement;
            IEnvelope pEnvelopNew = new EnvelopeClass();
            pEnvelopNew.XMin = 0;
            pEnvelopNew.YMin = pEnvelop.YMin - 10;
            pEnvelopNew.XMax = 7.1438;
            pEnvelopNew.YMax = pElementPic.Geometry.Envelope.YMax;
            //pEnvelopNew = pElementPic.Geometry.Envelope;

            //确定原始的Geometry属性,它是一个矩形
            pElementPic.Geometry = pEnvelopNew;//(IGeometry)point;// pEnvelope;

            pGraphicsContainer.AddElement(pElementPic, -10);
            pActiveView.PartialRefresh(esriViewDrawPhase.esriViewGraphics, null, null);

}

——————————————————————————————
可实现插入图片功能,但图片大小、位置控制方面还需要调整!
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值