protected void RaiseTyped(VirtualKey virtualKey, bool keyDown) { var value = VirtualKey2String((uint)virtualKey, keyDown); if (!string.IsNullOrEmpty(value)) { Typed?.Invoke(this, new StringKeyboardEventArgs(value)); } }