2013-02-20 70 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