老师您好,我在level管理中,关闭了level的显示,为什么在被关闭的level中的element IsInvisible还是false,
还有怎么判断level是否被关闭显示
您说的这个element IsInvisible应该不是受level控制的,mstn里边可以通过很多种方法把元素隐藏起来,例如视图剪切,displayset,元素本身的是否显示属性等等。判断Level是否被关闭显示应该通过LevelHandle的Display属性可以获取到,您可以试试。
Answer Verified By: Min.Xiong
老师您好,我照您的方法试了一下,Level 56关闭显示了,但是Display任然为true.代码和文件如下;
CollectLevels(Session.Instance.GetActiveDgnFile().GetLevelCache().GetHandles()); private void CollectLevels(LevelHandleCollection handles) { foreach (var handle in handles ) { if (handle?.Name != null && handle?.LevelId != null) { if (handle.Name == "Level 56") MessageBox.Show("shot"); if (Levels.ContainsKey(handle.LevelId)) continue; LevelResult level = new LevelResult(); level.Id = handle.LevelId; level.Name = handle.Name; level.colorId = handle.GetByLevelColor().Color; Levels.Add(level.Id, level); } } }
刚测试了一下,层下有元素时,才能关闭层显示,您再试试。