cevap

3

Windows.Phone.UI.Input.HardwareButtons'a bakın.

Eğer projenize Temel Bir Sayfa eklerseniz, VS projenize Navigasyon ile yardımcı olan projenize bir NavigationHelper sınıfı ekleyecektir, ayrıca Windows.Phone.UI.Input.HardwareButtons.BackPressed'a abone olduğu kaynak kodunda da görebilirsiniz. durumda


Eğer Geri Düğmesi taşıma size bir göz at this answer alabilir (böylece eventhandler kuyruğu ve yönetme) genişletmek istiyorum - geriye navigasyon önlemek için orada yardımcı olacaktır (İhtiyacınız yoksa) yöntemini ve bazı davranışlar ekleyin.

+0

için benim şimdiki geçersiz kılmaları kullanabilirsiniz dokümantasyon durumları "Bu API yalnızca yerel uygulamalarda desteklenir" –

+0

Bu ipucu için teşekkürler. – Roman

+0

@Roman Diğer yanıtlara ilginizi çekebilecek bir bağlantı ekledim - BackButton'u işlemek, gezinmeyi ve daha fazlasını engellemeye yardımcı oluyor. – Romasz

2

Yukarıdaki yorum gibi Windows.Phone.UI.Input.HardwareButtons kullanabilirsiniz. Ancak bu olay her sayfada her zaman atılır. Yani aşağıdaki örnekte olduğu gibi kullanabilirsiniz ve bu sadece aktif sayfaya atılır.


protected override void OnNavigatedTo(NavigationEventArgs e) 
{ 
    Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; 
} 

void HardwareButtons_BackPressed(object sender, Windows.Phone.UI.Input.BackPressedEventArgs e) 
{ 
    e.Handled = true; 
    Windows.Phone.UI.Input.HardwareButtons.BackPressed -= HardwareButtons_BackPressed; 
    // Navigate to a page 
} 

Sorunumu bu şekilde çözüyorum.

yapmam çok fazla kodumu dokunmayın o kadar, evrensel wp8.1 benim WP8 PROYECT göç
+0

Windows evrensel uygulamalarında desteklenmez – Nanoc

+0

Bu, evrensel bir uygulamada benim için çalıştı. Ancak, #if WINDOWS_PHONE_APP ifadelerinin içine yerleştirmek için buna ihtiyacım vardı. – Yosem

+0

HardwareButtons_BackPressed olayının OnNavigatedFrom'da kaldırılmaması gerekir mi? – Elektropepi

1

Im:

sayfam taban sınıfta

, yapıcı içinde, ben ekledi:

public VBasePage() 
    { 
     Windows.Phone.UI.Input.HardwareButtons.BackPressed += HardwareButtons_BackPressed; 
    } 

ve sonra:

private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e) 
    { 
     var args = new CancelEventArgs(); 
     OnBackKeyPress(args); 
     if (args.Cancel) 
     { 
      e.Handled = true; 
     } 
    } 
protected virtual void OnBackKeyPress(CancelEventArgs e) 
    { 
    } 

bu yüzden o t önemli mi OnBackKeyPress yöntemiyle

İlgili konular