这几乎是我的需要: How to open a child windows under parent window on menu item click in WPF?
但是,在这种情况下,我的父对象是Office.Interop.Excel com对象,而我的子对象是System.Windows.Window对象。我想知道是否有办法从interop.excel对象获取或转换Window对象。
我正在寻找的行为是excel表上弹出的窗口应该只是excel应用程序的最顶层。设置属性TopMost在这里不起作用,因为窗口最终始终是焦点。
答案 0 :(得分:3)
向Hans Passant致敬,他指示我在上面的评论中给出答案。
Excel的Application.Hwnd给了我excel窗口的句柄。要将其转换为System.Windows.Window对象,我使用了以下内容:
var helper = new System.Windows.Interop.WindowInteropHelper(view);
helper.Owner = (System.IntPtr)excel.Application.Hwnd;
通过这种方式,我的视图现在被指定为主要Excel窗口的子视图。