禁用标题栏“ X”-关闭按钮

时间:2018-11-12 15:23:58

标签: c# uwp titlebar

这个问题在过去已经被重复了几次,答案是还不可能。我想知道现在是否有可能?

UWP on desktop closed by top X button - no event

这里的最高答案说这是可能的,但是我很难使它起作用。我认为我需要SystemNavigationManagerPreview的参考,或者我需要添加

<Capabilities> <Capability Name="internetClient" /> <rescap:Capability Name="confirmAppClose"/> </Capabilities>

在清单中,但我不知道如何执行此操作。

2 个答案:

答案 0 :(得分:2)

是的,您使用此功能的方向正确。您需要处理CloseRequested事件,以覆盖用户单击“ X”时发生的情况。

https://docs.microsoft.com/en-us/uwp/api/windows.ui.core.preview.systemnavigationmanagerpreview.closerequested

答案 1 :(得分:1)

在其他地方,您说您正在使用VS2015,它只能定位到“周年更新”(内部版本14393)。 SystemNavigationManagerPreview.CloseRequested是创建者更新(内部版本15603)的新增功能。您需要使用VS2017将目标版本设置得足够高以支持CloseRequested。

SystemNavigationManagerPreview文档:

  

Windows 10要求

     

设备系列 Windows 10 Creators Update(引入的v10.0.15063.0)

Choose a UWP version文档:

  

内部版本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>