WPF, Silverlight, Windows Phone 8 und Windows-Store-Apps

Zurücknavigieren mit der Backspace-Taste
Kommentare

In der Kolumne „XAML Expertise“ präsentiert Gregor Biswanger Top-How-tos zum Thema XAML. Einsteiger und fortgeschrittene XAML-Experten sollen hier durch geballtes Wissen gesättigt werden. Heute gibt es folgende Expertise: „Zurücknavigieren mit der Backspace-Taste“.

Touch First heißt die Grundregel bei der Entwicklung von Windows-Store-Apps. Doch dass die Bedienung gerade für den Desktop essenziell ist, zeigt der Weg, den Windows 10 einschlägt, immer deutlicher. Oft stört es den Benutzer, wenn er beim Navigieren innerhalb einer Windows-App nicht mit der Backspace-Taste zurückgehen kann, so wie er es von Desktopprogrammen gewohnt ist ‑ beispielsweise von allen gängigen Webbrowsern. 

Lösung: CoreWindow-Instanz

Die Seiten unter Windows-Store-Apps leiten von der Page-Klasse ab. Diese bietet ein KeyUp-Event an, mit dem man nur noch auf die Backspace-Taste reagieren muss. Das Einbinden auf jeder Seite ist allerdings anstrengend und nicht effizient. Die Lösung dazu bietet die statische CoreWindow-Instanz, die unabhängig von der jeweiligen Seite die gleichen Events bietet. So reicht eine einmalige Implementierung in der App.xaml.cs-Datei aus. Direkt am Ende der OnLaunched-Methode ist ein geeigneter Platz dafür. In Listing 1 wird der nötige Code bereitgestellt. 

 Window.Current.CoreWindow.KeyUp += (_, args) =>
{
    if (args.VirtualKey == Windows.System.VirtualKey.Back)
    {
        var element = FocusManager.GetFocusedElement();
        if (element is TextBox || element is PasswordBox)
        {
            return; //do not disturb user when typing
        }

        var frame = (Frame)Window.Current.Content;
        if (frame.CanGoBack)
        {
            frame.GoBack();
        }
    }
};
 
Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -