2012-01-27 88 views
3

如何從wpf應用程序打開winform?這需要通過代碼完成,但正常功能以編程方式從wpf應用程序打開winform

Form.Show(); 

將不起作用。我需要一些能讓我改變表單可見性的東西,但是我不能訪問這個表單中的任何與gui相關的函數。

+0

你是什麼意思的「不會工作」?你有錯誤嗎?如果是這樣,那是什麼?沒有明顯的原因,爲什麼這不起作用,所以你需要提供更多的信息。 – 2012-01-27 22:58:56

+0

在這種情況下,將無法正常工作,因此在窗體上調用時無法訪問show功能。我試圖從解決方案中的另一個項目訪問此表單。出於某種原因,它在winforms項目調用它時起作用,而不是wpf項目。 – Tim 2012-01-28 00:48:41

回答

3

如果您有適當的參考,您可以像使用Windows窗體應用程序一樣使用Windows窗體,方式與WPF應用程序相同。這應該很好地工作:

YourForm form = new YourForm(); 
form.Show(); 

不過,我通常會建議試圖返工這包括Windows窗體內容爲使用WindowsFormsHost控制WPF窗口內的用戶控件。這往往是一個更清潔,因爲窗口父母工作更乾淨一點(因爲他們都是WPF窗口)。

+0

@Tim確保你的表單是正確定義的 - 但它應該是這樣簡單的...你是否在表單上看到編譯器錯誤?現在不是以某種方式從窗體派生出來的嗎? – 2012-01-28 01:26:56

+0

當我重新開始工作時,我將不得不查看代碼,但是我將嘗試從WindowsFormsHost承載該表單並查看是否有幫助。 – Tim 2012-01-28 15:00:15

+0

那麼,我今天打開這個項目並測試一下。有效。它一定是VS的一些構建問題/錯誤。 – Tim 2012-01-30 13:32:51