2010-07-25 3 views
2

У меня есть проект WPF (создание dll). Добавленные текстовые поля (или списки) будут принимать только COPY, PASTE, DELETE и BACKSPACE. Я не знаю, почему текстовые поля имеют такое поведение. Система получает все события (KeyUp, KeyDown, PreviewKeyUp, PreviewKeyDown, но не изменит текст, если символы набираются.не могу написать в текстовом поле wpf

событий TextChanged только огни для Delete, Paste и т.д.

текстовое поле это позволит и НЕ неизменяемые.

Любая помощь будет оценена. спасибо, Талии.

+0

Hi Talia - непонятно, из вашего вопроса, были ли у вас таинственно приобретенные текстовые поля с этим поведением, а «не могу писать в текстовом поле wpf» - проблема, или вы хотели бы создавать текстовые поля, подобные этому, и хотите получить некоторые предложения о том, как , Пожалуйста, не могли бы вы уточнить? – Lunivore

+0

Я не знаю, почему текстовые поля имеют такое поведение. я хотел бы написать в стороне текстовое поле. – talia

+0

Не могли бы вы привести пример того, как вы на самом деле их создаете. – n535

ответ

8

добавив следующее:

Window window1 = new Window(); 
System.Windows.Forms.Integration.ElementHost.EnableModelessKeyboardInterop(window1); 
window1.Show(); 

должен исправить ошибку.

также добавить ссылку на WindowsFormsIntegration.

спасибо всем!

+0

Вы не упоминали об интеграции WinForms! – benPearce

+0

нет интеграции с WinForms ... это проект wpf. хотя в решении есть другие проекты WinForms ... – talia

0

Я имел эту ситуацию перед моим единственным решением было создать новое решение/проект и скопировать код в поперечнике.

Довольно странно!

+0

Я старался делать то, что вы сказали, и это не помогло. не знаю, что делать ... – talia

+0

, и если вы создадите новое решение и пустой проект, вы все равно получите то же самое? – benPearce

+0

Я открыл новое приложение wpf, а затем его ок. но мой проект - пользовательское управление wpf Lib. Я должен создать dll. в любом случае создайте новое решение и скопируйте все, потому что в нем много проектов. есть ли другой способ? спасибо – talia

0

У меня была эта же проблема, и я понял, что обработал событие KeyDown в родительском окне (а также установил e.Handled в true). Это фактически не позволяло дочерним элементам управления видеть события KeyDown.

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