【问题标题】:WinRT, TextBox's focus, weird behaviorWinRT,TextBox的焦点,奇怪的行为
【发布时间】:2013-02-20 22:43:36
【问题描述】:

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

问题是,当BottomAppBar 打开时,如果用户点击TextBoxBottomAppBar 将关闭(标准AppBar 行为),但TextBox 没有聚焦(即使用户点击了就在上面)。用户需要再次聚焦TextBox 才能再次键入内容。

如果我将自己连接到BottomAppBarClosed 事件中,并尝试以编程方式将焦点设置到TextBox,它很快就会成为焦点,但会立即失去焦点,相反,它的 ScrollViewer 会获得焦点.

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

谢谢!

【问题讨论】:

    标签: c# xaml textbox windows-runtime focus


    【解决方案1】:

    也许你的BottomAppBar 会在你点击它并在ScrollViewer 上关闭,然后将焦点设置为TextBox 会被设置为ScrollViewer 的焦点覆盖。如果您只想将焦点放在TextBox 上 - 您可以禁用来自ScrollViewer 的焦点。您也可以尝试在延迟后设置焦点(使用await Task.Delay(50);await Dispatcher.RunAsync(() => /*set focus) 因此它可能会在ScrollViewer 获得焦点或处理ScrollViewer 上的GotFocus 后设置,并将焦点设置回TextBox 当你想让它保持焦点时。最后确保TextBox 可以得到焦点。

    【讨论】:

    • 冬青嘘*!它工作>_ScrollViewer.*ScrollBarVisibility隐式设置在TextBox上),我尝试了你提到的异步方法,它就像一个魅力(他们都这样做)。谢谢老哥!
    猜你喜欢
    • 1970-01-01
    • 2015-03-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-15
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    相关资源
    最近更新 更多