将窗口嵌入另一个窗口

时间:2013-08-02 09:14:35

标签: c# wpf

我自己编写了两个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的UserControl

1 个答案:

答案 0 :(得分:0)

您可以将App2程序集加载到App1应用程序中,并创建要在内容中显示的Window / UserControl实例。

您需要对App1进行一些更改,以便您可以引用这些类型,或者创建一个具有所需接口的通用程序集,您可以将它们绑定在一起。

认为任何解决方案(不会让App2拥有自己的进程并被托管)将依赖于对源代码的更改。