SystemNavigationManagerPreview не существует в текущем контексте - PullRequest
0 голосов
/ 13 ноября 2018

Поэтому я хотел попробовать отключить кнопку «X» (Закрыть) в моем приложении UWP.Для тестирования я создал новое приложение UWP.Затем я пошел к своим проектам Visual Studio:

\ Visual Studio 2015 \ Projects \ closerequesthandled \ closerequesthandled

и открыл Package и отредактировал следующие вещи:

Сначала я добавилxmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" и rescap

<Package
  xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
  xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
  xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp rescap">

Затем я добавил <rescap:Capability Name="confirmAppClose"/>

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

Я получаю это предупреждение: I Get Following warning

Но я читал, что это предупреждение ничего не делает, кроме предупреждения, поэтому оно все равно должно сработать.

Затем я добавил это в качестве теста в MainPage.xaml.cs:

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();
        SystemNavigationManagerPreview.GetForCurrentView().CloseRequested += this.OnCloseRequest;
    }

    private void OnCloseRequest(object sender, SystemNavigationCloseRequestedPreviewEventArgs e)
    {
        var x = 0;
    }
}

НоSystemNavigationManagerPreview и SystemNavigationCloseRequestedPreviewEventArgs получает красное подчеркивание:

The name `SystemNavigationManagerPreview` does not exist in the current context

и

The type or nmespace name `SystemNavigationCloseRequestedPreviewEventArgs` could not be found (are you missing a using directive or an assembly reference?)

Как я могу сделать эту работу?

1 Ответ

0 голосов
/ 15 ноября 2018

Это похоже на тот же вопрос на MSDN. Из вашей папки мы заметили, что вы используете Visual Studio 2015, а Visual Studio 2015 поддерживает только 14393 SDK. Как упомянули Стефан и мой пост MSDN, сначала вы должны установить минимальную целевую версию на 15063, затем вы можете использовать API Windows.UI.Core.Preview. Таким образом, Visual Studio 2017 требуется здесь для этой конкретной функции.

...