2011-10-18 69 views
0

我試圖在輸入完成後刪除從文本框閃爍的脫字符號。我已經嘗試過以編程方式聚焦另一個控件,並在mouseleave事件上設置IsReadOnlyCaretVisible = false和IsReadOnly,但沒有任何幫助。我該怎麼辦?不管我做什麼,脫字號仍然存在......wpf textbox caret

+0

「輸入完成後」是什麼意思?只有當用戶將焦點轉移到另一個控件時,這種情況纔有保證嗎? – djdanlib

+0

我輸入了我想要的文本 – OneMoreVladimir

+0

但是,控制系統如何知道您想要什麼?用戶可能想要輸入任何內容,甚至不需要輸入文字。 – djdanlib

回答

2

這很奇怪。當焦點改變時,插入符號應該消失,例如當您單擊文本框時。你不能使用老式的「HideCaret」WINAPI函數,因爲它不是一個標準的Windows控件 - 它是WPF。

這個問題解決了你的問題的反對意見,因爲你的問題不應該發生,而且解決方案是一個非常簡單的代碼行。也許如果你翻轉邏輯,或者看看你的代碼是否已經這樣做並禁用了那部分 - 你可以得到你要找的結果:WPF Textbox persist visible caret

另外,如果你使用的是最近版本WPF,你可以重新指定插入符號使用的筆刷。

+0

我創建了一個帶有文本框的用戶控件,並將這些控件添加到畫布。當我編輯文本,然後單擊畫布或脫字符仍然在文本框中閃爍時... =( – OneMoreVladimir