WPF TextBox不接受输入,空间和退格工作

我在usercontrol中有文本框,我使用以下XAML将usercontrol添加到MainWindow:

 

我在MyUserControl中有一个TextBox,问题是TextBox不接受任何输入。 退格键och空间有效,但如果我按下字母,则不会在TextBox中添加任何文本。

我确保文本不仅隐藏在TextBox中。 我也尝试将RichTextBox添加到MyUserControl并获得相同的结果,它不会接受任何输入(在space och backspace旁边)。

我还尝试将一个TextBox添加到MainWindow,结果相同; 它不会采取任何输入(在太空och退格旁边)。

MySuserControl也添加在TabControl和TabItem中。

有什么线索吗?

编辑:附加信息忘记写我正在从WinForm应用程序打开/创建WPF窗口。 当我在VS10中将我的启动项目设置为我的WPF项目时,它可以很好地使用TextBox的键盘输入。

怎么会?

我用以下代码打开/创建我的WPF窗口:

 MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow(); mw.Show(); 

编辑:解决方案所以我想我的真正问题是从WinForms应用程序打开WPf项目。

我添加了以下代码:

 MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow(); ElementHost.EnableModelessKeyboardInterop(mw); mw.Show(); 

“如果从非WPF主机(如WinForms)加载,则必须在WPF窗口中处理键盘输入。”EnableModelessKeyboardInterop()调用是必需的。“ http://weblogs.asp.net/jdanforth/archive/2008/07/29/open-a-wpf-window-from-winforms.aspx

回答我自己的问题(如果其他人遇到同样的问题):如果你从WinForms应用程序打开一个WPF表单,你必须执行以下操作来获得键盘输入:

 MyWpfProject.MainWindow mw = new MyWpfProject.MainWindow(); ElementHost.EnableModelessKeyboardInterop(mw); mw.Show(); 

“如果从非WPF主机(如WinForms)加载,则必须在WPF窗口中处理键盘输入。”EnableModelessKeyboardInterop()调用是必需的。“ http://weblogs.asp.net/jdanforth/archive/2008/07/29/open-a-wpf-window-from-winforms.aspx

也许你的用户控件是获取键盘事件而不是文本框? 尝试以这种方式搜索,它发生在鼠标按钮上。

我遇到了同样的问题,但我的环境已经建成,以至于我无法应用上述解决方案。 事实certificate这不是问题。 它比预期的要容易得多。

我在WinForms中托管了一个WPF用户控件。 我的WinForms MainView(启动表单)确实覆盖了“ProcessCmdKey”。 由于逻辑错误,它什么也没有返回。

尽管如此,我在XAML文件中收到了代码中的所有关键事件,但这些事件从未更新过我的文本框的“文本”。 只有空间和后退才这样做,这是我在代码背后没有收到的关键事件。

所以如果你没有想到这里最简单的解决方案,那就是VB.NET。

STRG + F“ProcessCmdKey”并确保您返回正确的值可能会完全取消注释,只是为了validation它不会给您带来与我相同的麻烦。