【问题标题】:Disable titlebar "X" - close button禁用标题栏“X” - 关闭按钮
【发布时间】:2019-04-15 08:29:49
【问题描述】:

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

UWP on desktop closed by top X button - no event

这里的最佳答案说这是可能的,但我无法让它发挥作用。我想我需要SystemNavigationManagerPreview 的参考,或者我需要添加

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

在清单中,但我不知道如何做到这一点。

【问题讨论】:

    标签: c# uwp titlebar


    【解决方案1】:

    是的,有了这种能力,您就走在了正确的道路上。您需要处理 CloseRequested 事件以覆盖用户单击“X”时发生的情况。

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

    【讨论】:

    • e.Handled = true;
    • 但是我应该把能力放在哪里呢?我无法理解:X
    【解决方案2】:

    您在其他地方说您正在使用 VS2015,它只能针对周年更新(内部版本 14393)。 SystemNavigationManagerPreview.CloseRequested 是创作者更新(内部版本 15603)的新内容。您需要使用 VS2017 将目标版本设置为足够高以支持 CloseRequested。

    SystemNavigationManagerPreview 文档:

    Windows 10 要求

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

    Choose a UWP version 文档:

    Build 15063(创作者更新,版本 1703)

    请注意,您必须使用 Visual Studio 2017 才能针对此版本的 Windows。

    使用 Visual Studio 2017 后,您可以在项目属性的应用程序部分设置最低版本,然后您就可以在清单中将功能设置为 Stefan 和 linked post 描述。

    有关定义受限功能的更多信息,请参阅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>
    

    【讨论】:

      猜你喜欢
      • 2013-07-31
      • 1970-01-01
      • 2010-12-17
      • 2013-09-26
      • 1970-01-01
      • 2010-10-29
      • 1970-01-01
      • 2017-04-08
      • 1970-01-01
      相关资源
      最近更新 更多