【问题标题】:WPF, give keyboard focus to control that was previously collapsedWPF,将键盘焦点赋予先前折叠的控件
【发布时间】:2013-07-24 23:02:25
【问题描述】:

我试图在一系列演示文稿更改期间提供特定的控制键盘焦点。假设一个控件处于隐藏的可见性状态。在函数调用中,我可以将其可见性更改为可见,将键盘焦点设置在它上面没有问题。但是,如果控件设置为折叠的可见性并且我尝试将可见性设置回可见然后将焦点设置在它上面,则不需要。

我可以使用一个过程来允许控件从折叠状态移动到可见状态并获得键盘焦点吗?

【问题讨论】:

    标签: c# wpf wpf-controls


    【解决方案1】:

    这可能是一个时间问题,您设置为可见的控件尚未准备好接受焦点。在处理动态 UI 更改时,这种情况可能会经常发生。

    您应该仍然能够集中您的控件,但您需要将焦点操作排队,直到控件正确初始化之后。只需使用如下所示的 BeginInvoke 调用,就可以解决问题。

    Dispatcher.BeginInvoke(() =>
    {
        //Set focus here
    });
    

    【讨论】:

      【解决方案2】:

      这不是控件已初始化的问题。这又是一个转换视觉状态的问题。

      只是为了闭环,通过调用control.UpdateLayout()来解决问题

      【讨论】:

        猜你喜欢
        • 2013-07-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-11-17
        • 2014-12-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多