App.xaml.cs内で現在開いているModalPageを取得

xamarin.formsでApp.xaml.cs内のOnSleepやOnResumeなどのライフサイクルイベント内で現在開いているPageを取得したい時はままある。
アプリがバックグラウンドになる時に何か保存したり、アプリがフォアグラウンドになる瞬間にデータを復元したり。
今回は一番上に開いているPageがModalPageでそれが何なのか特定する処理を紹介。

App.xaml.cs内でのCurrentPage(Modal)の取得

以下の様にして、現在開いているModalPageがConfigPageの場合、そのPageクラスを返して、そうでない場合はnullを返す様にする。

NavigationPage navi = null;
try
{
    navi = MainPage.Navigation.ModalStack[0] as NavigationPage;
}
catch { }
if (navi == null) return null;
try
{
    var configPage = navi.CurrentPage as ConfigPage;
    return configPage;
}
catch
{
    return null;
}

nullチェックは甘いのでご注意を。
かなり普通すぎてすいません。