这几乎是我需要的: 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 在这里不起作用,因为窗口最终总是成为焦点。
最佳答案
感谢 Hans Passant,他指导我找到上面评论中的答案。
Excel 的 Application.Hwnd 为我提供了 excel 窗口的句柄。为了将其转换为 System.Windows.Window 对象,我使用了以下内容:
var helper = new System.Windows.Interop.WindowInteropHelper(view);
helper.Owner = (System.IntPtr)excel.Application.Hwnd;
这样,我的 View 现在就被指定为 excel 主窗口的 subview 。
关于c# - 使窗口成为 Interop.Excel Com 对象的子对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35615819/