2009-07-10 47 views
2

我有这种情况。 (.net 3.5)Excel和WPF模式表单

带有OleAutomation和Office Interop的Winform应用程序为工具栏中的按钮创建excel,工具栏和处理程序。

现在,我们已经获得了一些功能,向用户显示模式窗口(WinForm的2.0)使用方法:

form.ShowDialog(new ExcelHwndWrapper(objExcelApplication.HWND)) 

而且模态形式的“所有者”设置为“创先争优”窗口。

现在我想创建一些WPF窗口而不是Winforms由于新功能的布局要求。

有什么办法来显示一个WPF的ModalDialog“超过”excel窗口?

我发现了一些WPF的ModalDialog“over”一个winform,但没有超过excel。

谢谢。

+1

Excel窗口仍然是一个WPF窗口,其中包含互操作内容?看起来像你应该能够简单地调用Window.ShowDialog(),对吧? – 2009-07-10 11:55:01

回答

2

当使用VSTO和Office 2007时,我在使用WPF Windows作为模态对话时遇到了麻烦。我发现这样做的好处是创建一个Winforms表单并在其中放入ElementHost控件,然后将我的WPF内容放入其中。

当我使用没有Winforms包装的WPF Windows时,遇到了正确捕获键盘输入等问题。

只要你让ElementHost伸展来填充整个对话,它就会看起来像你有一个WPF窗口。