C# WPF TextBox事件TextChanged PreviewTemperate不激发

C# WPF TextBox事件TextChanged PreviewTemperate不激发,c#,.net,wpf,event-handling,C#,.net,Wpf,Event Handling,我从一所大学继承了一个更大的C#项目(他走了,所以我不能再问他了)。VS2012+上的即时消息.Net4.6 在这个项目中,我第一次在非模式窗口中添加了WPF文本框。 问题是:我无法更改文本框中的文本 我发现了以下事实: 文本框不是只读的 我可以使用退格键和删除键,没有其他键 使用粘贴的contextmenu,复制剪切效果与预期一致 如果我打开窗口模式,我可以更改框中的文本 如果我打开非模态的den窗口,我可以捕获事件PreviewKeyUp、PreviewKeyDown、KeyUp和KeyD

我从一所大学继承了一个更大的C#项目(他走了,所以我不能再问他了)。VS2012+上的即时消息.Net4.6 在这个项目中,我第一次在非模式窗口中添加了WPF文本框。 问题是:我无法更改文本框中的文本

我发现了以下事实:

  • 文本框不是只读的
  • 我可以使用退格键和删除键,没有其他键
  • 使用粘贴的contextmenu,复制剪切效果与预期一致
  • 如果我打开窗口模式,我可以更改框中的文本
  • 如果我打开非模态的den窗口,我可以捕获事件PreviewKeyUp、PreviewKeyDown、KeyUp和KeyDown
  • 但我无法捕捉预览、文本输入(这很正常)和文本更改
  • 当我从头开始创建WPF项目时,一切都正常
我们有自己的WPF窗口样式,但不管我是否在窗口中使用这种样式

有谁能告诉我模态/非模态窗口中文本框的行为有什么不同吗。你能给我一个提示吗,我可以在哪里找到FromTheScratchProject和我们的项目之间行为的修改?我可以以某种方式调试事件处理吗


非常感谢

您的项目似乎是WinForms/Win32和WPF的混合体

如果按以下方式实例化窗口,则非模式窗口将正确捕获键盘事件:

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

你在使用Windows窗体集成吗?不,不是在那种情况下,但在其他情况下,该项目确实使用了Windows窗体和WPF Windows的混合实现了这一点,我花了2天的时间在网上阅读和搜索。非常感谢。