【问题标题】:Make window a child of Interop.Excel Com object使窗口成为 Interop.Excel Com 对象的子对象
【发布时间】:2016-02-25 00:11:19
【问题描述】:

这几乎是我需要的: 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 在这里不起作用,因为窗口最终总是成为焦点。

【问题讨论】:

  • 您必须使用 Excel 的 Application.Hwnd 属性来获取 Excel 主窗口的句柄。然后使用this Q+A 让 WPF 开心。

标签: c# .net excel office-interop excel-interop


【解决方案1】:

向汉斯·帕桑特致敬,他将我引向上述评论中的答案。

Excel 的 Application.Hwnd 为我提供了 Excel 窗口的句柄。要将其转换为 System.Windows.Window 对象,我使用了以下内容:

var helper = new System.Windows.Interop.WindowInteropHelper(view);
helper.Owner = (System.IntPtr)excel.Application.Hwnd;

这样,我的视图现在被指定为主 excel 窗口的子级。

【讨论】:

    猜你喜欢
    • 2014-01-06
    • 1970-01-01
    • 1970-01-01
    • 2011-06-27
    • 2011-01-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多