【wpf】Page的Unloaded事件

Unloaded在page切换的时候发生!

Window在Closing的时候,是不会去触发它的子元素的Unloaded 事件。

所以如果,在切换page之前,直接关掉了主界面,那么Unloaded的中的处理函数就不会被处理。

在这个过程之中,我查资料,发现一个有趣的东西。

Dispatcher介绍_albert的专栏-CSDN博客_dispatcher

后续在研究吧。

这里说一下:Dispatcher.ShutdownStarted 

public PageMotorTest()
{
    InitializeComponent();
    this.list_axis.ItemsSource = App.axisList;
    Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted;


}

private void Dispatcher_ShutdownStarted(object sender, EventArgs e)
{
    bloop = false;
}

这里其实就是订阅了一个事件(当程序被关闭时,会被调用。),可以写在任何地方,但是作用时全局的。意思就是,如果在其他page或者任何地方,只要程序关闭这个事件都会被触发调用。

2022年11月10日,更新

.net6以上写法会报错,要改一下:

public PageMotorTest()
{
    InitializeComponent();
    Dispatcher.CurrentDispatcher.ShutdownStarted += CurrentDispatcher_ShutdownStarted;


}

private void CurrentDispatcher_ShutdownStarted(object? sender, EventArgs e)
{
    bloop = false;
}

posted @ 2021-11-05 15:04  宋桓公  阅读(107)  评论(0编辑  收藏  举报