【问题标题】:Have a wpf window inside another wpf window在另一个 wpf 窗口中有一个 wpf 窗口
【发布时间】:2010-11-20 05:51:30
【问题描述】:

有没有办法在另一个 WPF 窗口中托管一个 WPF 窗口。我有几个有点复杂的表格。但现在为了简化事情,我试图将其中一些合并为一个“仪表板”表单中的标签页。

请注意,我不是在尝试托管 Windows 窗体,而是另一个 WPF 窗口

【问题讨论】:

    标签: wpf window


    【解决方案1】:

    我可以用另一个问题来回答这个问题吗?为什么不将它们创建为控件而不是其他 WPF 窗口,以便在 WPF 主窗口中托管?

    【讨论】:

    • 我猜那是因为他想利用默认窗口行为(标题栏移动它,关闭/最小/最大按钮...)
    • 不是真的托马斯。我不在乎拥有这些东西。是否可以将现有窗口转换为用户控件?我真正想做的是节省时间并在新的“主”窗口中使用已经在运行(并且已经在生产中测试)的现有 Windows。每个现有窗口将只是成为此“主”窗口中的一个选项卡,而不是一个单独的窗口。
    【解决方案2】:

    如果你想要标签页,为什么不使用 TabControl 和 UserControls 里面呢?如果您需要将这些选项卡之一转换为浮动窗口,只需将 UserControl 放在新窗口中...

    【讨论】:

    • 我已经在使用 TabControl。但我不想托管一个用户控件,而是托管一个已经存在的窗口。这可能吗?
    • 不,不是...你必须将窗口更改为 UserControl
    【解决方案3】:

    我认为您要的是 MDI,多文档界面。 this 之类的东西可能会有所帮助。

    不过,请注意,MDI 范式如今在很大程度上已被回避。通常有更好的方法来实现相同的功能。

    【讨论】:

    • 酷...但是子窗口的镀铬很丑;)
    【解决方案4】:

    我认为您想在另一个 WPF 窗口中托管 WPF Window1.xaml (page1.xaml) 的内容。

    嗯...您可以使用导航。而是在选项卡中运行 window1.xaml 内容,然后您可以在导航中使用您的数据。导航可以在 WPF 窗口应用程序中运行。您只需在 page1.xaml 中设计您的表单/UI。

    彼此..MDI 又旧又生锈。我们现在想要清除顶部窗口。

    【讨论】:

      【解决方案5】:

      这有点晚了,但我想通过 WindowsForms 互操作,您可以在 WPF 中放置一个 WinForms 控件主机,然后在该主机中放置一个 WinForms 控件来承载 WPF 窗口的句柄

      【讨论】:

      • >托管 WPF 窗口的句柄有详细说明吗?
      • 您可以根据我记得的包装窗口句柄的内容制作 WinForms 控件。因此,由于您可以获得 WPF 窗口的窗口句柄,因此您可以使用我相信的 WinForms 控件来包装它。然后,由于 WPF 可以通过其具有的互操作层托管 WinForms 控件(反之亦然,我记得也可以使用),因此您可以将该 WPF 窗口的 WinForms 包装器放在另一个 WPF 窗口中
      • 顺便说一句,我会让它们从 UserControl 继承,而不是更通用(例如,可以让 Windows 托管该 UserControl,也可以有另一个布局,其中包含一个选项卡式视图,每个选项卡上都有一个用户控件)
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2022-01-05
      • 1970-01-01
      相关资源
      最近更新 更多