2011-11-08 2 views
2

Я пишу приложение для Windows-телефона, и я хочу знать, как предупредить и убедиться, что этот пользователь действительно хочет выйти из приложения на задней клавише. Довольно просто.Alert on Back Key Press, Confirm Exit

Спасибо.

ответ

6

Я предполагаю, что ваша навигация настроена так, что пользователь может выйти только с первой страницы. Если это так, на этой странице вы можете переопределить событие OnBackKeyPress и отменить нажатие кнопки. Я не проверял этот код, но кажется, что это должно работать:

protected override void OnBackKeyPress(CancelEventArgs e) 
{ 
    if(MessageBox.Show("Are you sure you want to exit?","Exit?", 
          MessageBoxButton.OKCancel) != MessageBoxResult.OK) 
    { 
     e.Cancel = true; 

    } 
} 

Edit - Я оставлю это здесь в качестве примера перекрывая кнопку назад, но правильный ответ в данном контексте является не реализовать функция.

+2

Решение, предлагаемое keyboardP, будет работать, однако, если у вас нет очень веских оснований для этого, я бы посоветовал это сделать. Пользовательский интерфейс должен быть однородным по всей платформе, и, по моему опыту, единственными приложениями, которые представили диалог «вы уверены» на телефоне, были игры. Пользователь знает, что если они находятся на первой странице и они ударят, они выйдут из приложения. У вас должна была бы быть * ОЧЕНЬ * убедительная причина, прежде чем я согласился бы с этим, потому что я не хочу, чтобы приложения не работали, поскольку я ожидаю, что они будут работать. –

+1

О, и мне это не нравится, когда игры тоже. ;) –

+0

Богатый делает хороший момент. У оригинального приложения Facebook было предупреждение перед выходом, но его можно было отключить. Начиная с обновления, я не думаю, что вы можете включить эту настройку. IIRC, в руководстве пользователя есть что-то, что препятствует всплытию при выходе (для неигровых игр), хотя я могу забыть об этом. – keyboardP

2

В то время как предыдущий ответ об отмене OnBackKeyPress может технически работать, это может привести к отказу вашего приложения от требований сертификации. Смотрите следующую ссылку:

http://msdn.microsoft.com/en-us/library/hh184840(v=VS.92).aspx

5.2.4.2 - Кнопка Назад: Первый экран Нажатие кнопки Назад от первого экрана приложения необходимо закрыть приложение.

Я бы рекомендовал не применять эту функциональность.

+4

Я тоже. В большинстве случаев люди хотят реализовать эту функциональность, они, похоже, приближаются к приложению с точки зрения настольных приложений Windows. Платформа Windows Phone - это другой опыт. Помимо отказа от требований Marketplace, это создало бы «Glance-and-G ... о, подождите, да, я действительно хотел это сделать ... -Просто!» опыт. Не так круто. –

+0

Причина, по которой я хочу включить это, заключается в том, что кажется, что вы должны нажать клавишу «Назад», чтобы вернуться, но вы не можете. Поэтому, когда вы нажимаете клавишу «Назад», вы получаете существующее приложение. Я видел, как это делают игры, нет ли способа сделать это в обычном приложении? – JacobTheDev

+0

Когда вы на первом экране, что такое «назад», если это не «из приложения»? Игры разрешены для этого, потому что кнопка «Назад» также может использоваться как кнопка паузы для игр, но в обычном приложении она не нужна. Прочтите блог Питера Торра на эту тему: chrome: //coralietab/content/container.html? Url = 0, http: //blogs.msdn.com/b/ptorr/archive/2011/10/06/back-means- back-not-forwards-not-sideways-but-back.aspx –