private void KeyEvent(object sender, KeyHockEventArgs e) { if (CenterInfo.IsVisible) { CenterInfo.Visibility = Visibility.Hidden; } KeyInfo.HandleEvent(e, (info) => HandleKey(info)); KeyCount++; CountInfo.Content = KeyCount; }
public static KeyInfo HandleEvent(KeyHockEventArgs @event, Action <KeyInfo> action) { if (!EventList.TryGetValue(@event.VirtualKey, out var info)) { info = new KeyInfo(@event, EventList.Count); if (info.KeyDown) { EventList.Add(@event.VirtualKey, info); } } else { info.Event = @event; } if (info.KeyDown) { info.Timer.Start(); } if (info.KeyUp) { info.Timer.Stop(); } foreach (var keyinfo in EventList.Values) { action(keyinfo); } if (info.KeyUp) { EventList.Remove(info.VirtualKey); } return(info); }
private KeyInfo(KeyHockEventArgs @event, int index) { Event = @event; EventIndex = index; }