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]

VB.NET Aufbau

Sie verfügen nach der Schulung über fundierte Kenntnisse in der Arbeit mit objektorientierten Modellen in VB.NET und können wiederverwendbare Komponenten eigenständig erzeugen.

Visual Studio Team Foundation Server 2017/2015 (TFS) - Komplett 

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!