2016-03-05 90 views
0

我使用PromptTextBox,當Text爲空且IsKeyboardFocusWithin爲false時,將在其內部顯示提示文本。如何在TextBox上取消鍵盤焦點

問題是,當我開始新窗口時,它自動鍵盤焦點在第一個文本框,所以沒有顯示提示文本(但這種行爲是可以接受的)。
如果我想要取消鍵盤焦點,我必須點擊另一個控件(例如點擊一個按鈕,點擊另一個文本框),我不能點擊空白空間來取消鍵盤焦點。

我也測試正常的TextBox,它的行爲是一樣的。所以問題是:
如果通過點擊空白鍵盤將焦點放在TextBox上,我怎樣才能取消鍵盤焦點?

回答

0

'blank space'MouseDown事件處理程序中,如果有任何其他控件,請重點關注其他控件。否則,你需要一個隱形/不在視圖範圍內的TextBox來關注:

<blankSpaceControl>.MouseDown += ClearFocus; 

void ClearFocus(object sender, MouseEventArgs me) 
{ 
    <yourOtherFocusableControl>.Focus(); 
} 

沒有其他辦法。聚焦窗口本身會將焦點轉移到第一個可調焦的子控件上。

+0

所以,我需要的事件添加到每個控件,用戶可以點擊它來清除注重文本框?我的應用程序按照我想檢查的方式運行,但我不知道它是如何實現這一行爲的。 – witoong623