2009-09-29 3 views
1

Я создал экран в WPF, который принимает входные данные от сканера штрих-кода. Я слушаю событие PreviewTextInput и событие KeyUp, которое позволяет мне определить, что сканер «набрал», и когда он закончит. Он отлично работает. Вам просто нужно отобразить форму, и она будет принимать сканирование штрих-кодов.WPF Принимать ввод без фокуса

Проблема в том, что у меня есть другие элементы управления на странице, и они вызывают проблемы. Например, когда вы нажимаете кнопку в форме, эта кнопка имеет фокус. Нажатие клавиши ввода из этой точки приводит к срабатыванию обработчика событий кнопки. Он автоматически не останавливается.

Кто-нибудь знает элегантный решение этой проблемы? Я бы предпочел не добавлять код для каждого обработчика событий, чтобы сфокусировать другой элемент, но я сделаю это как последнее средство.

+0

Как сканер 'подключен' к входной контроль? – Lazarus

+0

Он просто набирает его как клавиатуру. –

ответ

4

Button (фактически UIElement) имеет свойство для этой конкретной цели: UIElement.Focusable.

Если вы установили это значение false в свой xaml или код, вы все равно можете нажать на кнопку, но она не будет отвлекаться от других UIElements.

+0

Это может сработать, я буду брб. –

0

Событие PreviewTextInput может изменить фокус (дефокусировка, если у него есть кнопка), чтобы при нажатии клавиши ввода в конце штрих-кода кнопка не нажата.

0

Мы просто должны установить атрибуты кнопок для включения этих функций.
Accept Button - Button.IsDefault = "True"
Кнопка отмены - Button.IsCancel = "True"

Смежные вопросы