gpt4 book ai didi

c# - WPF TextBox 事件 TextChanged PreviewTextInput 不触发

转载 作者:太空宇宙 更新时间:2023-11-03 15:05:35 25 4
gpt4 key购买 nike

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

我发现的是以下事实:

  • TextBox 不是只读的
  • 我可以使用退格键和删除键,不能使用其他键
  • 带有粘贴、复制和剪切功能的上下文菜单按预期工作
  • 如果我打开窗口模式,我可以更改框中的文本
  • 如果我打开非模态窗口,我可以捕获事件 PreviewKeyUp、PreviewKeyDown、KeyUp 和 KeyDown
  • 但我无法捕获 PreviewTextInput、TextInput(这是正常的)和 TextChanged。
  • 当我从头开始创建 WPF 项目时,一切正常。

我们有自己的 WPF-Window-Style,但是我是否在窗口中使用这种样式并不重要。

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

非常感谢

最佳答案

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

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

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

关于c# - WPF TextBox 事件 TextChanged PreviewTextInput 不触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43735736/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com