tom*_*mab 17 c# desktop-application uwp
在桌面上运行的UWP应用程序可以从顶部X按钮关闭,但它没有任何事件.众所周知,在手机和平板电脑上,应用程序应该依赖于Suspending事件,无论它是如何被触发的,然后应用程序应该依赖它ApplicationExecutionState.
然而,这是一个(可能)常见的场景:在手机上Suspending事件就足够了,如果正在进行Voip呼叫,它将在应用程序暂停后由操作系统操作.在桌面上,用户希望关闭按钮完全关闭应用程序.因此,如果正在进行呼叫,则应该挂起并且应该释放某些资源.
当(并且仅当)UWP应用程序在桌面上运行时,如何知道用户何时单击"关闭"按钮?
Mic*_*SFT 12
甲限制能力 confirmAppClose是在Windows 10 1703版(版本10.0.15063),以提供应用程序拦截窗口关闭的能力增加.
清单命名空间:
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
Run Code Online (Sandbox Code Playgroud)
表现:
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="confirmAppClose"/>
</Capabilities>
Run Code Online (Sandbox Code Playgroud)
提交到商店时需要额外的批准.但随后将CloseRequested在SystemNavigationManagerPreview实例上触发事件.
码:
public MainPage()
{
this.InitializeComponent();
SystemNavigationManagerPreview.GetForCurrentView().CloseRequested += this.OnCloseRequest;
}
private void OnCloseRequest(object sender, SystemNavigationCloseRequestedPreviewEventArgs e)
{
if (!saved) { e.Handled = true; SomePromptFunction(); }
}
Run Code Online (Sandbox Code Playgroud)
你可以在这里做一些延迟工作(保存或提示),或者你可以设置Handled为true以阻止窗口关闭(用户取消提示).
| 归档时间: |
|
| 查看次数: |
8604 次 |
| 最近记录: |