protected void RaiseTyped(VirtualKey virtualKey, bool keyDown)
        {
            var value = VirtualKey2String((uint)virtualKey, keyDown);

            if (!string.IsNullOrEmpty(value))
            {
                Typed?.Invoke(this, new StringKeyboardEventArgs(value));
            }
        }