通用应用不允许删除或禁用它似乎关闭按钮。我们可以通过全屏隐藏它。但是当光标移动到它上面时,会带回标题栏。有没有办法删除关闭按钮?
原因:我正在处理屏幕时间。在允许的时间结束后,我想阻止屏幕。我应该删除关闭按钮,以便用户无法克服我的应用程序。
编辑:删除关闭按钮不会完全帮助。这是工作的一部分。我只是想知道如何删除它。
答案 0 :(得分:3)
使用当前发布的API,我们可以在标题栏中自定义这三个按钮的颜色。但是没有任何属性或方法可用于禁用或删除这些按钮。
在UWP中,我们可以使用ApplicationView.TitleBar | titleBar property获取标题栏,如下所示:
ApplicationViewTitleBar titleBar = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TitleBar;
此属性的类型为ApplicationViewTitleBar。它只有几个属性可以自定义按钮的颜色,如:
titleBar.ButtonBackgroundColor = Windows.UI.Colors.White;
titleBar.ButtonForegroundColor = Windows.UI.Colors.White;
titleBar.ButtonHoverBackgroundColor = Windows.UI.Colors.White;
titleBar.ButtonHoverForegroundColor = Windows.UI.Colors.White;
titleBar.ButtonInactiveBackgroundColor = Windows.UI.Colors.White;
titleBar.ButtonInactiveForegroundColor = Windows.UI.Colors.White;
titleBar.ButtonPressedBackgroundColor = Windows.UI.Colors.White;
titleBar.ButtonPressedForegroundColor = Windows.UI.Colors.White;
然而,这实际上并不会隐藏这些按钮。用户仍然可以最小化或最大化应用程序,当指针位于右上角时,他们仍然会看到关闭按钮
在Windows 8.1中,如果我们希望用户只使用某个应用程序而不执行任何其他操作,包括关闭应用程序,我们可以使用 Kiosk模式。有关详细信息,请参阅Enable Kiosk Mode in Windows 8.1和Set up a kiosk on Windows 10 Pro, Enterprise, or Education。但是,由于您希望在允许的时间结束后阻止屏幕,因此无法满足您的要求。
因此,UWP可能不是您需求的最佳选择。您可以尝试使用经典桌面应用程序来实现它。
答案 1 :(得分:3)
在Windows 10版本1703(版本10.0.15063)及更高版本中,您可以使用SystemNavigationManagerPreview类阻止应用程序关闭。
将此添加到您的应用清单:
<Capabilities>
<rescap:Capability Name="confirmAppClose" />
</Capabilities
您需要在Package元素中使用rescap命名空间:
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
在主窗体的构造函数中,添加:
var sysNavMgr = SystemNavigationManagerPreview.GetForCurrentView();
sysNavMgr.CloseRequested += OnCloseRequested;
OnCloseRequested可以按如下方式实现:
private void OnCloseRequested(object sender, SystemNavigationCloseRequestedPreviewEventArgs e)
{
var deferral = e.GetDeferral();
e.Handled = true;
deferral.Complete();
}
答案 2 :(得分:0)
在App.Xaml.cs中添加以下代码:
test.abc.lisa.abc.wil