SceneControl中如何设置图层透明度?设置了不起作用

SceneControl 中如何设置图层透明度?发现设置后不起作用,但是同样处理在二维是可以的
已邀请:

朱新颖

赞同来自:

【解决办法】:
执行ISceneGraph.RefreshViewers();操作之前需要执行ISceneGraph.Invalidate(axSceneControl1.Scene.get_Layer(0), true, false);这样就可以设置透明度了,可参考下面代码:
SetLayerTransparency(axSceneControl1.Scene.get_Layer(0), 80);
            //刷新方法                    
            ISceneGraph pSG = axSceneControl1.Scene.SceneGraph;
            pSG.Invalidate(axSceneControl1.Scene.get_Layer(0), true, false);
            pSG.RefreshViewers();
            axTOCControl1.Refresh();

​public void SetLayerTransparency(ILayer pLayer, short Transparency)
        {
            if (pLayer == null)
            {
                return;
            }
            ILayerEffects pLayerEffects = pLayer as ILayerEffects;
            if (pLayerEffects == null)
            {
                return;
            }
            if (pLayerEffects.SupportsTransparency)
            {
                //设置图层的透过率
                pLayerEffects.Transparency = Transparency;
            }

        }

要回复问题请先登录注册