【问题标题】:Embed a Window into Another将一个窗口嵌入另一个
【发布时间】:2013-08-02 09:14:35
【问题描述】:

我有两个自己编写的 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);

确实出现了,但是有几个问题:

  • 显示不正确;按钮位置和其他 UIElement 都搞砸了。
  • 它覆盖了整个屏幕,尽管 mainGridOfApp2 的大小固定为小得多。效果就像WindowState.Maximized
  • 我在 App2 中应用了自定义样式(主题),但由于未读取 App2 的 App.xaml,因此未应用自定义样式。如何应用?

如何将 App2 无缝嵌入到 App1 中?我不想将 App2 作为单独的进程启动并将 App1 设置为父进程,因为这意味着它始终位于 App1 拥有的任何 UI 组件之上。

编辑: 我已将 App2 嵌入到 App1 中。我把App2的主网格放到了UserControl中,并从Window中加载了UserControl。 App1这边,我只是在引用了App2的UserControl之后调用了它。

【问题讨论】:

    标签: c# wpf


    【解决方案1】:

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

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

    认为任何解决方案(不涉及 App2 拥有自己的进程和托管)都将依赖于源代码的更改。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-04
      • 2012-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多