2017-05-02 179 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

相關問題