Как я получаю обычные символы от события WPF KeyDown?

Я хотел бы загрузить изображения и создать палитру из тех, кто использует хорошую графическую программу (например, PhotoShop, Fireworks или Gimp). Другой вариант (также использующий одну из этих программ) - использовать «инструмент-пипетку» для выборки любого цвета на веб-странице, который вас заинтересовал (и дать вам соответствующий rgb #, чтобы вы могли продублировать его).

10
задан matteo.poletti 29 September 2011 в 13:50
поделиться

2 ответа

От Вашего краткого вопроса я предполагаю, что Вам нужен способ получить значение ASCII для нажатой клавиши. Это должно работать

private void txtAttrName_KeyDown(object sender, KeyEventArgs e)
        {
            Console.WriteLine(e.Key.ToString());
            char parsedCharacter = ' ';
            if (Char.TryParse(e.Key.ToString(), out parsedCharacter))
            {
                Console.WriteLine((int) parsedCharacter);
            }
        }

например, если бы Вы нажимаете Ctrl + S, Вы видели бы следующий вывод.

LeftCtrl
S
83
4
ответ дан 4 December 2019 в 03:17
поделиться

К сожалению, нет никакого простого способа сделать это. Существует 2 обходных решения, но они оба падают при определенных условиях.

Первый должен преобразовать его в строку:

TestLabel.Content = e.Key.ToString();

Это даст Вам вещи как CapsLock и Сдвиг и т.д., но в случае алфавитно-цифровых ключей он не сможет сказать Вам состояние сдвига и т.д. в то время, таким образом, необходимо будет полагать что сами.

Вторая альтернатива должна использовать событие TextInput вместо этого, где e. Текст будет содержать фактический введенный текст. Это даст Вам правильный символ для алфавитно-цифровых ключей, но он не даст Вам управляющие символы.

4
ответ дан 4 December 2019 в 03:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: