c# - 可以将事件的 Microsoft Word 窗口转换到 WPF 窗口吗?

标签 c# wpf ms-word office-interop

我创建了一个 Microsoft Word 2010 vsto 加载项,当用户单击功能区按钮时,它会显示许多自定义 Wpf 窗口对话框。

我遇到的问题是,如果您单击任务栏中的 Word 图标,自定义对话框会在 Word 实例后面消失。

谷歌搜索后,似乎可以通过设置窗口的所有者属性来解决此问题,但我正在努力获取 Word 应用程序的 Window 实例。

我在下面附上了相关代码,有什么建议吗?

using WordNS = Microsoft.Office.Interop.Word;

Window wrapperWindow = new Window();
wrapperWindow.ResizeMode = ResizeMode.NoResize;
wrapperWindow.WindowStartupLocation = System.Windows.WindowStartupLocation.CenterScreen;
wrapperWindow.ShowInTaskbar = false;
wrapperWindow.Content = dialogViewModel.View;
wrapperWindow.Title = dialogViewModel.Title;
wrapperWindow.SizeToContent = SizeToContent.WidthAndHeight;

WordNS.Application app = (WordNS.Application)Marshal.GetActiveObject("Word.Application");
wrapperWindow.Owner = (Window)app.ActiveWindow;

Invalid cast exception when casting ActiveWindow to Window

最佳答案

异常清楚地表明您的问题的答案是否定的。

如果 Microsoft.Office.Interop.Word 提供任何方法来获取 Word 主窗口的窗口句柄 (HWND)(或者如果您通过某些 Win32 调用获取该句柄),您可以尝试通过 WindowInteropHelper.Owner 设置窗口的所有者属性(property)。

关于c# - 可以将事件的 Microsoft Word 窗口转换到 WPF 窗口吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11861406/

相关文章:

wpf - 在 UserControl 中定义 KeyBindings,但它们是否适用于整个窗口?

html - Word XML - XSLT 到 HTML

pdf到word转换显示垃圾内容

c# - 在 .NET-core 中找不到 TestContext 类

javascript - C# 查找并按下 JS 创建的按钮

c# - 为什么锁定我们要更改的对象是一种不好的做法?

c# - Android - 启动 Google Voice 应用程序并调用号码

wpf - 来自文件 PixelFormat 的 BitmapImage 始终是 bgr32

wpf - 我还如何使用Mvvm Light Toolkit将参数传递给新的打开的窗口

regex - 使用正则表达式检查 Word 宏中的数值