老师,你好!
我参考https://mp.weixin.qq.com/s?__biz=MzU2NTc2MDk3Ng==&mid=2247483682&idx=1&sn=15d8a601873fc24e5f007cb39a6976a8&chksm=fcb7879dcbc00e8b4d0d26a291e5048d8d34930bde2366aad6f54fca22afe2826b81a436e41b&mpshare=1&scene=23&srcid=11117QKpMRQZJtMv2uGDQUfz&sharer_sharetime=1564577655061&sharer_shareid=1775705220c7bf4383ab38476091473a#rd 中的方法,创建了一个PreviewControl页面。
但是我增加到ElementAgenda的元素并未显示出来。
效果如下:
我的MS版本为Update12,请问这个是什么原因导致的呢?
我的代码如下:
DgnModel dgnmodel = Bentley.MstnPlatformNET.Session.Instance.GetActiveDgnModel(); try { //构造元素集 ElementAgenda showElements = new ElementAgenda(); //元素集来源为选择 showElements.Source = ModifyElementSource.Selected; //获取当前DgnModel所有图形元素 ModelElementsCollection elements = dgnmodel.GetGraphicElements(); //遍历所有图形元素 IEnumerator<Element> allelement = elements.GetEnumerator(); while (allelement.MoveNext()) { showElements.Insert(allelement.Current, false); } //获取当前DgnModel的IntPtr IntPtr modelPtr = dgnmodel.GetNative(); unsafe { //构造PreviewControl,注意此处DDUI的使用 DDUI.Bentley.DgnPlatform.PreviewControl pc = new DDUI.Bentley.DgnPlatform.PreviewControl((DDUI.Bentley.DgnPlatform.DgnModel*)modelPtr.ToPointer()); this.elementHost1.Child = pc; pc.FitToView(); pc.Rotate(DDUI.Bentley.DgnPlatform.RotationMode.Isometric); pc.SetRenderMode(DDUI.Bentley.DgnPlatform.RenderMode.Solid); pc.ShowPreview(showElements); pc.Refresh(); } } catch (System.Exception ex) { MessageBox.Show(ex.Message + ":" + ex.StackTrace); }
这个控件最好在WPF下使用,跟winform交互的时候元素实际上是显示了,你点击一下右侧fit按钮就能看见了。
---------------------------------------------------------------
中国市政工程西北设计研究院有限公司武汉分院