【问题标题】:Opening WPF Window from another Window从另一个窗口打开 WPF 窗口
【发布时间】:2016-05-12 08:48:43
【问题描述】:

我有两个不同的 WPF 应用程序以不同的方式运行。现在我的要求是合并这些应用程序。现在这两个应用程序都是 WPF 应用程序。所以我需要从第一个应用程序调用第二个应用程序所以基本上我已经创建了两个窗口,并且我正在通过单击按钮从 Window1 初始化 Window2。现在问题假设我为两个应用程序使用了相同的资源文件。

如果我关闭我的第一个 WPF 应用程序会发生什么,第二个应用程序也会关闭吗?

在这些情况下最好的方法应该是什么?

如果我的主应用程序窗口关闭,那么资源也会超出范围,我应该如何确保我的应用程序正常工作?

【问题讨论】:

  • 你试过会发生什么吗?这将回答您的所有问题,并且您可以开始查看必须解决的问题,而不是可能出现的问题。
  • 谢谢,但已经在合并两个应用程序的过程中,我需要在这方面投入一些时间。所以我想知道是否有人这样做了
  • 我还是有点迷茫。您有 2 个单独的应用程序。现在您想将它们合并到一个应用程序中。假设应用程序 A 有 WindowA,应用程序 B 有 WindowB,而新应用程序是应用程序 C。现在 C 加载 WindowA,并通过在 WindowA 中单击按钮,创建 WindowB(来自应用程序 B)。这是你想问的吗?
  • 我只有两个应用程序 App A 和 App B 目前都在独立工作。但是我的一些用户希望 AppB 成为 AAP A 的一部分。所以我想我会将 App B 包含在 App A 中。现在我只是在寻找最好的方法,因为这两个应用程序都有相同的资源集主题化和样式化,所以我想把它变成一个单一的资源字典,而不是保留多余的资源。所以问题是如果应用程序 A 关闭会发生什么会影响应用程序 B
  • 这与他们现在有多少相似之处无关。这是关于它们以后可能如何发展的问题。如果这两个是非常相似的,如果他们想改变A,B也会改变,那么这样合并是正确的。如果期望它们遵循不同的进化路径,那么它们应该保持分离。

标签: c# wpf xaml


【解决方案1】:

在应用程序级别,您可以设置ShutdownMode 属性来定义使应用程序终止的条件。

如果由于某种原因第二个应用程序无法在没有第一个应用程序的情况下运行,正如您在帖子中建议的那样,您可以将此属性设置为OnMainWindowClose。这样,如果第一个关闭,整个应用程序将停止

【讨论】:

  • 我只是想知道最好的方法是什么?第二个是要关闭还是我应该打开它与主要的不同。
【解决方案2】:

在单击按钮时生成一个新进程,该进程会打开 AppB。但这将使两个应用程序彼此分开,因此也不会共享数据。如果您想共享数据和代码,请手动将 AppB 中的每个页面添加到 AppA,就像添加第三方控件一样。

【讨论】:

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