Где находится Windows.Phone.UI.Input?

Я пытаюсь намочить ноги с Windows Phone 8.1. Я пытался обработать HardwareButtons.BackPressed, подключив его к настроенному обработчику событий, чтобы кнопка «Назад» не приостанавливала мое приложение. Я думаю, что HardwareButtons определен в Windows.Phone.UI.Input, но когда я попытался включить:

using Windows.Phone.UI.Input;

Компилятор выдавал ошибку:

The type or namespace name 'Phone' does not exist in the namespace 'Windows' (are you missing an assembly reference?)

Из предыдущих вопросов: не удалось загрузить DLL PresentationFramework

Тип или пространство имен имя "Window" не существует в пространстве имен "System.Windows"

Похоже, что файл PresentationFramework.dll может находиться в сборке gac, но я нигде не могу найти его на своей машине.

Может ли кто-нибудь показать мне, где находится dll, чтобы я мог добавить его в ссылки или Windows 8.1 работает по-другому? Это моя первая попытка написать программу для windows phone 8.1. Моя система — Surface Pro 2 с Windows 8.1, и я использую vs2013 Premium. Если это поведение Surface Pro по дизайну, мне потребуется руководство по настройке обработчика BackPressed, чтобы при его нажатии он не выгонял меня из моего приложения. Спасибо,


person user1205746    schedule 11.08.2014    source источник


Ответы (3)


Событие Windows.Phone.UI.Input.HardwareButtons.BackPressed предназначено для приложения среды выполнения Windows Phone. Кажется, вы создаете новое приложение Windows Phone Silverlight. Приложение Silverlight не имеет этого события.

Для приложения Silverlight PhoneApplicationPage имеет событие:

    // Summary:
    //     Occurs when the hardware Back button is pressed.
    public event EventHandler<CancelEventArgs> BackKeyPress;

Подпишитесь и обработайте это событие для вашей ситуации, пожалуйста.

person Eddie    schedule 11.08.2014
comment
Спасибо за подсказку. Однако я почти уверен, что использовал winRT (я создал новый проект из установленного шаблона›Visual C#›StoreApps›Universal Apps›Blank App, а не из Silverlight. Как мне убедиться, что Silverlight точно не использовался? Я очень новичок к VS2013, но я не новичок в программировании, я просто хочу перепроверить. - person user1205746; 11.08.2014
comment
@user1205746 user1205746, если вы создаете универсальное приложение, вы должны быть осторожны, только файлы, размещенные в проекте с именем App*.WindowsPhone, могут использовать этот HardwareButtons.BackPressed API. - person Eddie; 12.08.2014
comment
Ага... вот оно! Мне нужно поместить это в код, относящийся к телефону, но не к обоим. - person user1205746; 12.08.2014

Хотя не уверен, что это здесь, но для приложений Windows UWP (10) вам необходимо добавить в проект ссылку на Windows Mobile Extensions.

person beebum    schedule 17.12.2015

Если вам нужно обработать событие нажатия кнопки «Назад», вы можете использовать следующий код

protected override void OnBackKeyPress(System.ComponentModel.CancelEventArgs e)
{
   //Do your work here
   base.OnBackKeyPress(e);
}

Я не думаю, что для этого вам потребуются дополнительные пространства имен. А что касается «предотвращения приостановки вашего приложения во время обратного нажатия», я не уверен, соответствует ли оно требованиям сертификации магазина.

person Prasanna Aarthi    schedule 11.08.2014