Пример #1
0
        private void OnPreviewKeyDown(object sender, VirtualKeyCodeEventArgs e)
        {
            _pressed?.Add(e.Key);

            // Reset state after a delay
            _timer?.Start();
        }
Пример #2
0
        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);
        }
Пример #3
0
        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();
            }
        }