2015-11-13 8 views
6

Ich versuche zu verhindern, dass die App geschlossen wird, indem ich im App Window auf das Schließen-Feld klicke. Wenn Sie zum Beispiel einen Texteditor mit ungespeicherten Änderungen haben, würde ich beim Drücken von Close Box zuerst "Möchten Sie Änderungen vor dem Beenden speichern?" Anzeigen.Überschreibe Box im Fenster 10 Universal Apps UWP

Wie kann ich eine App erkennen, die geschlossen werden soll und dies verhindern soll?

Ich benutze C++, und dies muss für Windows 10 Universal Apps UWP sein. Ich weiß bereits, wie man das für Win32 macht. Danke

+1

Ich glaube nicht, dass Sie dies tun können, können Sie nur auf die App Aussetzung Ereignis reagieren, die zu der Zeit genannt wird. –

+2

Dies ist möglich, da der Microsoft Edge-Browser eine UWP-App ist und dieses Verhalten in einigen Fällen unterstützt. Geben Sie beispielsweise in Facebook Chat eine Nachricht ein, ohne die Eingabetaste (Senden) zu drücken und versuchen Sie, den Browser zu schließen. Das bedeutet, dass es möglich ist, ich weiß einfach nicht wie. Irgendeine Hilfe? – Esenthel

+0

Edge ist eine 1st Party App - MS kann APIs verwenden, die niemand sonst kann. https://msdn.microsoft.com/en-us/library/windows/apps/mt243287.aspx sagt eindeutig, dass es kein Ereignis zum Schließen einer Anwendung gibt. –

Antwort

6

Die Kommentare sind korrekt. Zurzeit gibt es keine Möglichkeit für eine normale Store-App.

Doch mit dem Schöpfer Update (und entsprechenden SDK) haben wir eine Vorschau API enthalten, die Sie jetzt für diese Funktionalität überprüfen können:

Die Windows.UI.Core.Preview.SystemNavigationManagerPreview-Klasse stellt eine CloseRequested Veranstaltung dass eine App als behandelt markieren kann. Damit das Ereignis funktioniert, muss die App die eingeschränkte Funktion "confirmAppClose" deklarieren: https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations

Bitte teilen Sie uns Ihr Feedback mit.

Danke, Stefan Wick - Windows Developer Platform

+0

Danke für die Informationen, die aufregend sind. Ich werde warten, bis die API abgeschlossen ist – Esenthel

+0

'ConfirmAppClose' Fähigkeit nicht in 16299 SDK gefunden – Vincent