engine中调整Element的上下显示顺序(遮盖)

 

pGraphicsContainer.AddElement(pElement, 0); 

Engine中IGraphicsContainer类似于栈,加Element时,默认加到第一个,所以会将之前加的要素盖住(这里,AddElement函数中的ZOrder参数貌似没有作用),要想改变Element的显示顺序,可以用BringForward,BringToFront,SendToBack,SendBackward这些函数来调整

但是,这些函数的输入参数是IEnumElement,这个貌似有点不好弄到,找了半天终于找到一种方法可以得到:

 

IGraphicsContainerSelect tmpGSelect = (IGraphicsContainerSelect)mMapControl.Map;  
tmpGSelect.SelectElement(pElement);  
pGraphicsContainer.SendToBack(tmpGSelect.SelectedElements);  
tmpGSelect.UnselectAllElements();  

 

posted @ 2017-01-08 20:44  wenglabs  阅读(213)  评论(0编辑  收藏  举报