【问题标题】:How to keep a window inside your application only?如何只在应用程序中保留一个窗口?
【发布时间】:2012-10-14 16:12:22
【问题描述】:

我正在编写一个 WPF 应用程序,它有一个主画布区域,用户可以在其中打开多个窗口,拖放它们,并且通常可以随意在应用程序中移动它们。

到目前为止,我所做的基本上是使用Show() 方法打开窗口,并且我已将它们从任务栏中隐藏。但是,当主应用程序最小化时,已经打开的小窗口都出现在桌面上。我所寻找的基本上是一种将窗口包含在应用程序中的方法。

这可能吗?

【问题讨论】:

    标签: c# .net wpf window mdi


    【解决方案1】:

    是的,但您需要设计一些基础架构来替代 MDI 过去所做的事情(尽管通常很糟糕)

    因此,当您在应用中打开新窗口时,请将其添加到列表中。 关了就拿出来 当您的主应用程序最小化时,将列表中的所有窗口也最小化。

    您还可以捕获子窗口移动事件并将它们保持在界限内,当主应用程序移动时带上孩子。对接、级联、平铺……

    关键点让它运行这个托管子窗口列表。

    【讨论】:

    • 感谢您的详细回答。老实说,对于我认为应该内置的功能来说,这似乎有点太多了。除了 MDI WPF 库之外,我是否不走运?因为不再支持
    • 好吧,您不必全部实现,一个接口将为您提供基础知识。无论如何,我不记得上次使用内置 MDI 是什么时候了,太多的箍跳太多或太少。甚至不知道 WPF 中曾经有 MDI :(
    • 嗯,它不完全是官方的,它是一个库 :) 所以据我所知,它从未得到官方支持。感谢您的帮助!
    【解决方案2】:

    你想做的事叫MDI

    WPF MDI

    【讨论】:

    • 是的,我知道这一点。但是,该库不再受支持且已过时。我正在尝试合并问题中提出的功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-01
    相关资源
    最近更新 更多