在Revit开发中如果使用modeless的对话框,经常容易被Revit窗体覆盖,但是如果将窗体设为Topmost的话,当Revit失去焦点后,它又会遮住其他程序的界面,比如将Revit最小化后,TopMost的窗口没有随着Revit最小化,而是孤零零的显示在屏幕上并且遮挡了 其他窗口。其实只需要将Revit的窗体设置为弹出窗体的Ower就可以了,这样也不需要设置topmost。代码亲测可以使用。
//实例WPF窗体
WindowsIcon win=new WindowsIcon();
System.Windows.Interop.WindowInteropHelper mainUI = new System.Windows.Interop.WindowInteropHelper(windowIcon);
mainUI.Owner = Process.GetCurrentProcess().MainWindowHandle;
win.Show()