2009-07-10 26 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窗口。