我在WPF工作,我正面临着关于NDI容器的问题 在我的MainWindow Xaml中,我有MainMdiContainer
<mdi:MdiContainer Theme="Aero" mdi:MdiChild.Closed="MdiChild_Closed" Margin="0,0,0,80" Name="MainMdiContainer" Grid.Row="1" Background="{x:Null}">
</mdi:MdiContainer>
当然我有另一个名为“Registration”的xaml页面,我在mainWindow中也有一个按钮来打开mdiChild
Public Sub btnAddUser_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnAddUser.Click
MainMdiContainer.Children.Clear()
MainMdiContainer.Children.Add(New MdiChild() With { _
.Title = "Πρόγραμμα Εσωτερικής Διαχείρισης Διορισμός Επιτροπής και Χρηστών", _
.Height = (System.Windows.SystemParameters.PrimaryScreenHeight - 500), _
.Width = (System.Windows.SystemParameters.PrimaryScreenWidth - 430), _
.Style = Nothing, _
.Content = New Registration() _
})
End Sub
Public Sub MdiChild_Closed(sender As System.Object, e As System.Windows.RoutedEventArgs)
For Each child As MdiChild In MainMdiContainer.Children.ToList()
If (child.Name.ToString().Contains("mdiChildRegistration")) Then
MainMdiContainer.Children.Remove(child)
End If
Next
End Sub
直到这个阶段一切顺利,mdiChild打开了 现在我想通过按一个按钮来关闭子窗口
Private Sub btnClose_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnClose.Click
Dim mainWin As New MainWindow
Dim mdiCont As MdiContainer = mainWin.MainMdiContainer
mainWin.MdiChild_Closed(sender, e)
End Sub
但是mdiChild并没有关闭......实际上mdiCont中的Childern是空的。 当我添加一个儿童
<mdi:MdiChild IsTabStop="False" />
在MainWindow中,mdiCont中的Childern不是空的它有一个孩子,当我试图通过按下按钮打开我的孩子时,它就会关闭。 我怀疑添加过程中的某些内容与我有关,但我不知道是什么。 有人帮我吗?
答案 0 :(得分:0)
最后,我已经完成了清理子窗口 所有这些都来自后面的子代码
Private Sub btnClose_Click(sender As Object, e As System.Windows.RoutedEventArgs) Handles btnClose.Click
Dim mainWin As MainWindow = Economy.Application.Current.MainWindow
mainWin.MainMdiContainer.Children.Clear()
在mainWin的声明中,它必须被称为
&#39; Object.Application.Current.MainWindow&#39;
为了传输子窗口属性并具有清除它的能力 未删除,因为删除不清除子窗口 非常感谢@dymanoid。