这个问题在过去已经被重复了几次,答案是还不可能。我想知道现在是否有可能?
UWP on desktop closed by top X button - no event
这里的最高答案说这是可能的,但是我很难使它起作用。我认为我需要SystemNavigationManagerPreview
的参考,或者我需要添加
<Capabilities>
<Capability Name="internetClient" />
<rescap:Capability Name="confirmAppClose"/>
</Capabilities>
在清单中,但我不知道如何执行此操作。
答案 0 :(得分:2)
是的,您使用此功能的方向正确。您需要处理CloseRequested事件,以覆盖用户单击“ X”时发生的情况。
答案 1 :(得分:1)
在其他地方,您说您正在使用VS2015,它只能定位到“周年更新”(内部版本14393)。 SystemNavigationManagerPreview.CloseRequested是创建者更新(内部版本15603)的新增功能。您需要使用VS2017将目标版本设置得足够高以支持CloseRequested。
SystemNavigationManagerPreview文档:
Windows 10要求
设备系列 Windows 10 Creators Update(引入的v10.0.15063.0)
内部版本15063(创建者更新,版本1703)
请注意,您必须使用Visual Studio 2017才能定位此版本的Windows。
在使用Visual Studio 2017之后,您可以在“项目属性”的“应用程序”部分中设置最低版本,然后就可以在清单中以Stefan和linked post description来设置功能。
有关定义受限功能的更多信息,请参见Restricted Capabilities文档。特别是,您需要先定义xmlns:rescap,然后将其添加到IgnorableNamespaces中,然后才能使用问题中的代码设置功能本身。
<?xml version="1.0" encoding="utf-8"?>
<Package
...
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="... rescap">
...
<Capabilities>
<rescap:Capability Name="confirmAppClose"/>
</Capabilities>
</Package>