Problem z obsługą przycisku BackButton

0

Witam serdecznie. Tworzę uniwersalną aplikację na platformę Windows 8.1. Natrafiłem na mały problem. Podczas dodawania obsługi przycisku BackButton

       public App()
        {
            this.InitializeComponent();
            this.Suspending += this.OnSuspending;
            UnhandledException += Application_UnhandledException;
#if WINDOWS_PHONE_APP
            HardwareButtons.BackPressed += HardwareButtons_BackPressed;
#endif

        }

#if WINDOWS_PHONE_APP
        private void HardwareButtons_BackPressed(object sender, BackPressedEventArgs e)
        {
            Frame frame = Window.Current.Content as Frame;
            if (frame == null)
            {
                return;
            }

            if (frame.CanGoBack)
            {
                frame.GoBack();
                e.Handled = true;
            }
        }


#endif

Niestety całość jest nie aktywna a kompilator podkreśla mi using:

using Windows.Phone.UI.Input;

Podejrzewam że problem leży po stronie dwóch aplikacji w jednym projekcie. Wiecie jak to obejść?

Dorzucam screen:

title

Usunąłem warunki w celu zrobienia screena z błędem ;)

1

Każdy kawałek kodu zależny od platformy (w tym using) też musisz objąć w odpowiedni #ifdef.

0

Hmm. Nic mi to nie mówi. Szukałem rozwiązania w Google i nie mogę nic znaleźć. Chciałbym żeby ten przycisk działał również na innych urządzeniach.

Mógłbyś podać mi jakiś przykład?

1

Tak, jak zrobiłeś:

public App()
        {
            this.InitializeComponent();
            this.Suspending += this.OnSuspending;
            UnhandledException += Application_UnhandledException;
#if WINDOWS_PHONE_APP
            HardwareButtons.BackPressed += HardwareButtons_BackPressed;
#endif
 
        }

// i tak samo objęta ta metoda HardwareButtons_BackPressed

I ten #if musi być również w usingach:

#if WINDOWS_PHONE_APP
using Windows.Phone.UI.Input;
#endif

Jeżeli jest nieaktywne (szare), to dlatego, że masz aktywny projekt dla Windows 8, nie dla WP8 - zmień sobie projekt aktywny (kliknij prawym w Solution Explorer na projekcie Windows Phone i wybierz "Set up as start-up project").

0

Próbowałem tego wcześniej :/ ale nie z wybraną opcją "Set up as start-up project" która załatwiła sprawę :D Dziękuje za pomoc :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1