2013-08-02 107 views
0

我有兩個WPF應用程序,我寫我自己,App1和App2。我希望將App2嵌入到App1中。嵌入一個窗口到另一個

目前,我想這一點:

App2 app2 = new App2(); 
object content = app2.Content; //which is a grid 
app2.Content = null; 
mainGridOfApp1.Children.Add(content as UIElement); 

它出現了,但有幾個問題:

  • 它無法正確顯示;按鈕位置和其他UIElements都搞砸了。
  • 它覆蓋了整個屏幕,雖然mainGridOfApp2固定在更小的尺寸。效果就像WindowState.Maximized
  • 我已經在App2中應用了自定義樣式(主題),但由於未讀取App2的App.xaml,因此未應用自定義樣式。我如何應用它?

如何將App2無縫嵌入到App1中?我不想將App2作爲單獨的進程啓動,並將App1設置爲父級,因爲這意味着它始終位於App1擁有的任何UI組件的頂部。

編輯: 我已經將App2嵌入到App1中。我將App2的主網格放入UserControl,並從窗口加載UserControl。對於App1來說,我所做的只是在引用App2後調用App2的UserControl

回答

0

您可以將App2程序集加載到您的App1應用程序中,並創建您想要在內容中顯示的窗口/用戶控件的實例。

您需要對App1進行一些更改,以便您可以引用類型或者可以創建具有所需接口的常見程序集,並將它們連接在一起。

認爲任何解決方案(不會讓App2擁有自己的進程並被託管)將依賴於對源代碼的更改。

相關問題