如何在单击 WPF 中的按钮时关闭独生子

How to close only child on click of a button in WPF

我使用 CodePlex DLL 创建了 MDI 窗体,我添加了一个 WPF 用户控件并使用以下代码将其打开:

MainMdiContainer.Children.Add(new MdiChild()
        {
            Title = " Employee Master",
            Height = 300,
            Width = 500,
            //Here CustomerMaster is the class that you have created for mainWindow.xaml user control.
            Content = new EmpMaster()
        });

现在我只想在单击 button.I 时关闭子窗体(WPF 用户控件),在该按钮单击上使用了以下代码:

Window.GetWindow(this).Close();

但是该代码关闭程序以及所有打开的 window 和 MDI 父级。如何在单击按钮时仅关闭特定的 WPF 用户控件?

我不知道那个框架,但我怀疑 MDI 子级不是 Window。当您调用 Window.GetWindow(this).Close(); 时,您关闭了主 window 并因此终止了应用程序。

尝试从 MainMdiContainer 中删除 MdiChild:

var child = new MdiChild() { ... };
MainMdiContainer.Children.Add(child);
// Later
MainMdiContainer.Children.Remove(child);

我得到了答案,我在点击该按钮时调用了以下代码行:

MainWindow mainWind = Application.Current.MainWindow as MainWindow;
mainWind.MainMdiContainer.Children.RemoveAt(0);