2017-05-02 188 views
2

我从一所大学继承了一个更大的C#项目(他走了,所以我不能再问他了)。 Im on VS2012 + .Net4.6 在这个项目中,我第一次将WPF文本框添加到非模态窗口。 问题是:我不能更改文本框中的文本。WPF TextBox事件TextChanged PreviewTextInput不会触发

我发现了什么是以下事实:

  • 文本框是不是只读
  • 我可以使用backspace-和删除键,没有与粘贴
  • 文本菜单键一样,复制一个剪纸作品如预期
  • 如果我打开窗口模式,我可以更改框中的文本
  • 如果我打开书房窗口非模态,我可以捕获事件PreviewKeyUp,PreviewKeyDown,KeyUp和KeyDown
  • 但我无法捕捉PreviewTextInput,TextInput(即正常)和TextChanged。
  • 当我从头创建一个WPF项目时,一切正常。

我们有自己的WPF窗口风格,但是没关系,如果我在窗口中使用这种风格或不。

任何人都可以告诉我什么是模态/非模态Windows中TextBoxes的行为差异。你能给我一个提示,我可以在哪里找到FromTheScratchProject和我们的项目之间的行为修改?我能以某种方式调试事件处理吗?

谢谢很多

+0

您使用的Windows窗体的整合? –

+0

不,在这种情况下,但该项目在其他情况下,它的WindowsForm和WPF-Windows的混合 – woelfchen42

回答

0

好像你的项目的WinForms/Win32和WPF的混合。

如果您的实例在下列方式窗口,你非模态窗口将赶上键盘事件正确:

Window wpfWindow = new Window(); 
ElementHost.EnableModelessKeyboardInterop(wpfWindow); 
wpfWindow.Show(); 
+0

这样做的伎俩,它花了我2天的时间在网上阅读和搜索。谢谢。 – woelfchen42

+0

我会标记这一个解决,但我是盲人,我找不到按钮... – woelfchen42

+0

好吧,找到它,upvoted正确的答案。 – woelfchen42

相关问题