我有一个包含一个自定义的用户控件的窗口。 在用户控件需要知道何时包含它的窗口已经关闭,以便它可以终止线程。
我最好的猜测是如何做到这一点是处理用户控件的空载事件。 然而,空载事件似乎只在用户实际点击关闭窗口进行发射,而不是当我编程方式调用窗口上的Close()方法。
为了便于参考,这里有一些我的代码的相关部分。
MyWindow.xaml:
<Window x:Class="Namespace.MyWindow"
xmlns:controls="clr-namespace:Namespace.Controls">
<controls:MyControl/>
</Window>
MyControl.xaml:
<UserControl x:Class="Namespace.Controls.MyControl"
Unloaded="UserControl_Unloaded"/>
<!-- Stuff -->
</UserControl>
MyControl.xaml.cs:
void UserControl_Unloaded(object sender, RoutedEventArgs e)
{
// Stop the thread.
}
因此,只要回顾一下,在UserControl_Unloaded()方法时,我关闭该窗口中的“手动”上面获取调用(ALT-F4,点击红色的“X”等),而不是在从代码的其他地方我称之为myWindow.Close()
有任何想法吗?