2013-02-20 67 views
0

在我的一個WinRT應用視圖中,我想在TextBox丟失焦點時顯示BottomAppBar。我玩GotFocusLostFocus事件,我可以手動相應地更改BottomAppBarIsOpen屬性。WinRT,TextBox的焦點,奇怪的行爲

問題是,當BottomAppBar是開放的,如果用戶點擊TextBox,在BottomAppBar被關閉(標準AppBar行爲),但TextBox不集中(即使用戶點擊右鍵就可以了)。用戶需要再次關注TextBox才能夠再次鍵入內容。

如果我勾了自己在Closed事件BottomAppBar的嘗試和編程將焦點設置爲TextBox,它很快成爲重點,但失去了馬上,而是關注的焦點,它的ScrollViewer被聚焦。

任何想法爲什麼第二次失去焦點TextBox? 任何想法如何我可以做我想要實現的?

謝謝!

回答

3

也許你BottomAppBar得到,當你挖掘了出來,並在ScrollViewer和設置焦點您TextBox封閉得到由焦點被設置爲ScrollViewer後正確的覆蓋。如果您只想關注TextBox - 您可以從ScrollViewer禁用焦點。您也可以嘗試在延遲後設置焦點(使用await Task.Delay(50);或使用await Dispatcher.RunAsync(() => /*set focus),以便在ScrollViewer獲得焦點或在ScrollViewer上處理GotFocus後設置焦點,並在焦點回到TextBox,以便您希望它保持焦點時最後確保TextBox可以得到焦點

+0

Holly sh *!it worked> _ <因爲我沒有直接訪問ScrollViewer(它通過'ScrollViewer *隱式設置在TextBox上* ScrollBarVisibility '),我嘗試了你提到的異步方法,它像魅力一樣工作(他們都這樣做)。謝謝隊友! – 2013-02-21 07:39:48