private void OnPreviewKeyDown(object sender, VirtualKeyCodeEventArgs e) { _pressed?.Add(e.Key); // Reset state after a delay _timer?.Start(); }
private bool RaiseKeyDown(int virtualKeyCode) { var e = new VirtualKeyCodeEventArgs(virtualKeyCode); PreviewKeyDown?.Invoke(this, e); if (!e.Handled && !e.SkipMainEvent) { KeyDown?.Invoke(this, e); } return(e.Handled); }
private void OnPreviewKeyUp(object sender, VirtualKeyCodeEventArgs e) { _pressed?.Remove(e.Key); // Reset state after a delay if (_pressed?.Count > 0) { _timer?.Start(); } else { _timer?.Stop(); } }