0

在我的 WinRT 应用程序的一个视图中,我希望在失去焦点BottomAppBar时显示。TextBox我玩了GotFocusLostFocus事件,我可以使用这些事件手动更改相应的IsOpen属性BottomAppBar

问题是,当BottomAppBar打开时,如果用户单击TextBoxBottomAppBar则关闭(标准 AppBar 行为),但TextBox没有聚焦(即使用户单击它右)。用户需要再次聚焦TextBox才能再次键入内容。

如果我在尝试以编程方式将焦点设置为 的Closed情况下将自己连接起来,它很快就会成为焦点,但会立即失去焦点,相反,它的 ScrollViewer 会获得焦点。BottomAppBarTextBox

知道为什么TextBox第二次失去焦点吗?知道如何做我想要实现的目标吗?

谢谢!

4

1 回答 1

3

当您点击它时,您可能BottomAppBar会关闭,ScrollViewer然后将焦点设置为您的焦点,然后TextBox将焦点设置为ScrollViewer右侧。如果您只想将焦点放在TextBox- 您可以禁用焦点ScrollViewer。您也可以尝试在延迟后设置焦点(使用await Task.Delay(50);或使用,await Dispatcher.RunAsync(() => /*set focus)因此它可能会在ScrollViewer获取焦点或处理GotFocus之后ScrollViewer设置,并将焦点设置回TextBox您希望它保持焦点的时间。最后确保TextBox完全可以集中注意力。

于 2013-02-20T23:33:42.123 回答