【问题标题】:WPF VS2013 - add new Window to project as child of main Window [duplicate]WPF VS2013-将新窗口添加到项目中作为主窗口的子窗口[重复]
【发布时间】:2015-04-05 15:32:32
【问题描述】:

我正在尝试在我的 C# 应用程序中从 WinForms 切换到 WPF。我的 WinForms 应用程序是 MDI 应用程序。我还需要在 WPF 中使其成为 MDI。如何将新窗口锁定到我的应用程序主窗口或该窗口上的画布?我的子窗口无法超出应用程序主窗口。该子窗口必须在主窗口菜单项的单击事件上显示。

【问题讨论】:

标签: wpf window children mdi


【解决方案1】:

在您的情况下,最好的解决方案是使用 System.Windows.Forms.Integration.ElementHost 控件。此控件允许您放置您喜欢的任何 WPF 控件。跟着这些步骤: 1) 在 Windows 窗体项目中创建子窗体 2) 在这个表单中添加 System.Windows.Forms.Integration.ElementHost 控件 3)在代码后面做这样的事情:

wpfElementHost.Child = new System.Windows.Controls.TextBlock()
        {
            Text = "Hello from WPF world.",
            FontSize = 25,
            FontStyle = System.Windows.FontStyles.Italic,
            FontWeight = System.Windows.FontWeights.Bold,
            TextAlignment = System.Windows.TextAlignment.Center
        };

注意我使用了完全限定名称,因为 Windows 窗体和 WPF 有很多共同点。在我的情况下,wpfElementHost 是 System.Windows.Forms.Integration.ElementHost。您可以托管任何控件,例如只需将自定义控件或用户控件创建为类库并在 Windows 窗体应用程序中使用它们。 希望这有帮助。让我知道我是否正确回答了您的问题。

【讨论】:

  • 不幸的是我们误解了:(我不是在写 WinForms 应用程序而是 WPF,我需要一些 WinForms 功能 - 主要是在 WPF 中创建新项目窗口并将其设置为主窗口的子窗口并配置它无法离开那个主窗口。
猜你喜欢
  • 2021-04-06
  • 1970-01-01
  • 2015-08-05
  • 2023-03-09
  • 1970-01-01
  • 2023-03-13
  • 1970-01-01
  • 2011-11-12
  • 2010-11-22
相关资源
最近更新 更多