A restricted capability confirmAppClose
was added in Windows 10 version 1703 (build 10.0.15063) in order to provide apps the ability to intercept window closing.
Manifest namespace:
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
Manifest:
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="confirmAppClose"/>
</Capabilities>
It needs extra approval when submitting to the store. But then will fire the CloseRequested
event on a SystemNavigationManagerPreview instance.
Code:
public MainPage()
{
this.InitializeComponent();
SystemNavigationManagerPreview.GetForCurrentView().CloseRequested += this.OnCloseRequest;
}
private void OnCloseRequest(object sender, SystemNavigationCloseRequestedPreviewEventArgs e)
{
if (!saved) { e.Handled = true; SomePromptFunction(); }
}
You can get a deferral to do a bit of work here (save or prompt), or you can set Handled
to true in order to stop the window from closing (user cancelled prompt).
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…