2017-07-13 29 views
1

我已經做了一些研究,但我沒有發現太多對UWP有用的東西。當窗口上點擊'X'時,我需要在應用程序實際關閉之前調用一個函數。我似乎無法找到任何涉及MVVM Cross和UWP的資源。看起來可能有一種方法,但網上只是缺乏資源。我真的只是希望指出正確的方向。訪問窗口上的關閉按鈕UWP C#

+0

聽起來像你試圖搶劫回調? – TGarrett

回答

4

當你創建一個空白的應用程序,並轉到App.xaml.cs你應該在文件的結尾看到事件OnSuspending

看到下面

/// <summary> 
/// Invoked when application execution is being suspended. Application state is saved 
/// without knowing whether the application will be terminated or resumed with the contents 
/// of memory still intact. 
/// </summary> 
/// <param name="sender">The source of the suspend request.</param> 
/// <param name="e">Details about the suspend request.</param> 
private void OnSuspending(object sender, SuspendingEventArgs e) 
{ 
    var deferral = e.SuspendingOperation.GetDeferral(); 
    //TODO: Save application state and stop any background activity 
    deferral.Complete(); 
} 

這是你在找什麼。

+2

只需要添加一下,在系統結束之前先做好自己的工作。 –

+1

這很好,謝謝。 –

0

我不確定你的意思是與MVVM Cross交易。爲了處理或致電之前應用程序關閉功能/停用您可以撥打下列事件:

Window.Current.Activated += (s, e) => 
{ 
    //closed, activated, deactivate 
}; 
Window.Current.Closed += (ss, ee) => 
{ 
    //closed 
}; 
+0

這不會起作用。我不認爲你可以監視** main **窗口上的Closed事件。 –

+0

我測試過它,它適用於我,不知道你的意思是無法監測封閉事件? –

+0

'Activated'應該可以工作,但'Closed'不會啓動......而這個問題特別要求在點擊** x **按鈕時如何處理 –