C# 如何在UWP中获取页面离开事件?

C# 如何在UWP中获取页面离开事件?,c#,uwp,C#,Uwp,我将我的UWP页面设置为单例模式。因此,我无法使用函数Navigate()导航到此单例页面。Navigate()函数的替换方法如下所示 this.Frame.Content = new BlankPage2(); Window.Current.Activate(); 但是通过这种方式,当我们离开页面时,将不会调用页面的OnNavigatingFrom()。但我需要一个事件来告诉我是否有页面离开。如何操作?这似乎是一个不同寻常的设计决策,但在任何情况下,当Frame.Content属性发生更

我将我的UWP页面设置为单例模式。因此,我无法使用函数
Navigate()
导航到此单例页面。
Navigate()
函数的替换方法如下所示

 this.Frame.Content = new BlankPage2();
 Window.Current.Activate();

但是通过这种方式,当我们离开页面时,将不会调用页面的
OnNavigatingFrom()
。但我需要一个事件来告诉我是否有页面离开。如何操作?

这似乎是一个不同寻常的设计决策,但在任何情况下,当
Frame.Content
属性发生更改时,您都可以得到通知:

var token = rootFrame.RegisterPropertyChangedCallback(
               Frame.ContentProperty, 
               ContentChanged);
ContentChanged
方法可以如下所示:

private void ContentChanged(DependencyObject sender, DependencyProperty dp)
{
    //do something when Content changes
}
上面的
token
变量可用于以后注销属性更改通知:

rootFrame.UnregisterPropertyChangedCallback(Frame.ContentProperty, token);

这似乎是一个不同寻常的设计决策,但在任何情况下,当
Frame.Content
属性发生更改时,您都可以得到通知:

var token = rootFrame.RegisterPropertyChangedCallback(
               Frame.ContentProperty, 
               ContentChanged);
ContentChanged
方法可以如下所示:

private void ContentChanged(DependencyObject sender, DependencyProperty dp)
{
    //do something when Content changes
}
上面的
token
变量可用于以后注销属性更改通知:

rootFrame.UnregisterPropertyChangedCallback(Frame.ContentProperty, token);