3
在WPF中,在<Window...
標記上有Closing
事件,我們可以在此處掛接MainWindow_OnClosing
中的某些處理代碼。UWP頁面中的關閉事件是什麼?
但是在UWP應用中沒有這樣的事件。關閉我猜的是Unloaded
,甚至沒有Unloading
在那裏。
我只是放置了我的處置代碼,但仍然感到擔心。 Unloaded
事件是否適用於此類工作?有什麼我需要注意的嗎?
在WPF中,在<Window...
標記上有Closing
事件,我們可以在此處掛接MainWindow_OnClosing
中的某些處理代碼。UWP頁面中的關閉事件是什麼?
但是在UWP應用中沒有這樣的事件。關閉我猜的是Unloaded
,甚至沒有Unloading
在那裏。
我只是放置了我的處置代碼,但仍然感到擔心。 Unloaded
事件是否適用於此類工作?有什麼我需要注意的嗎?
根據MSDN,Window類有一個Closed事件。 我提到這是您發佈的Closing
事件window
成分的,但請記住該事件的一句話:
當窗口關閉時發生關閉事件。但是,Windows應用商店 應用程序通常使用單個窗口實例,並且不會打開和關閉其他窗口實例。
現在,使用主窗口的Frame導航系統Pages的時候,我建議你使用OnNavigatedTo和OnNavigatedFrom事件來處理所有的初始化和配置之類的功能。
您可能需要注意OnNavigationFrom
,因爲它在頁面被卸載之前立即被調用並且不再是父框架的當前源。
一個很簡單的例子:
Windows.ApplicationModel.Resources.ResourceLoader loader;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
loader = new Windows.ApplicationModel.Resources.ResourceLoader();
var navigationPageContentFormat = loader.GetString("NavigationPageContent");
var navigationPageContentWhenEmpty = loader.GetString("NavigationPageContentWhenEmpty");
this.ParameterTextBlock.Text = String.Format(navigationPageContentFormat, e.Parameter?.ToString() ?? navigationPageContentWhenEmpty);
}
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
loader = null;
}
你想關閉應用程序或從頁面導航的事件? – AbsoluteSith
當窗口關閉時,只需在ViewModel上放置我的'SpeechRecognizer'。 – Blaise
我想,因爲沒有任何事件存在應用程序關閉。你可以使用'Suspending'事件來釋放資源並在'Resuming'事件中獲取它。 – AbsoluteSith