Написал код, при котором обрабатываются нажатия кнопок на клавиатуре, но если переключить раскладку на русскую, символы все равно записываются латинскими буквами, как сделать чтобы русские символы так же считывало при переключении раскладки
DataTable dt = new DataTable();
public MainWindow()
{
InitializeComponent();
dt.Columns.Add("Key_Code", typeof(string));
dt.Columns.Add("Key_Value", typeof(string));
dt.Columns.Add("Key_State", typeof(string));
dt.Columns.Add("Key_Char", typeof(string));
dt.Columns.Add("System_Key", typeof(string));
dt.Columns.Add("Key_Down", typeof(string));
dt.Columns.Add("Key_Up", typeof(string));
}
private void KeyEvents(object sender, KeyEventArgs e)
{
if (e.IsRepeat) return;
string s = "" + e.Key; // key code
string x = "" + e.SystemKey; // system key
string z = "" + e.KeyStates; // key state
string q = "" + e.IsUp; // key up
string d = "" + e.IsDown; // key down
string val = "" + (int)e.Key; // key value
string ch = "" + (char)e.Key;// key char
dt.Rows.Add(new string[] { s, val, z, ch, x, d, q });
dg1.ItemsSource = dt.DefaultView;
}
Ответ
Если брать другое событие например TextInput, то можно перехватить русский символ, но у этого события нет свойств таких, какие есть у keydown и keyup
Комментариев нет:
Отправить комментарий