Feedback

C# - KeyDown in Control (Windows Store Apps)

Veröffentlicht von am 24.12.2013
(1 Bewertungen)
Wenn man für eine Windows Store App ein eigenes Control erstellt, dann funktioniert das KeyDown-Event (und andere auch) nicht korrekt. Das liegt an der Art, wie die Event verarbeitet werden.
In WPF könnte man einfach das PreviewKeyDown-Event nutzen, das gibt es unter WinRT aber nicht.

Ich fand aber eine Möglichkeit auf Stack Overflow:
http://stackoverflow.com/a/16996731/1623754
Darum Danke an Jerry Nixon für die super Idee :)

Dabei wird das AcceleratorKeyActivated-Event des CoreWindows abonniert. In dem Eventhandler kann man dann einfach die gedrückte Taste abfragen. Das zeigt das Snippet.
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

void CreateAbo()
{
    Window.Current.CoreWindow.Dispatcher.AcceleratorKeyActivated += OnKeyDown;//Event abonnieren
}

private void OnKeyDown(CoreDispatcher sender, AcceleratorKeyEventArgs args)
{
    if (args.EventType == CoreAcceleratorKeyEventType.SystemKeyDown || args.EventType == CoreAcceleratorKeyEventType.KeyDown)
    {
        //e.VirtualKey enthält die gedrückte Taste
    }
}

Kommentare zum Snippet

 

Logge dich ein, um hier zu kommentieren!