3

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

是否有一个过程可以让控件从折叠状态移动到可见状态并获得键盘焦点?

4

2 回答 2

2

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

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

Dispatcher.BeginInvoke(() =>
{
    //Set focus here
});
于 2013-07-24T23:08:15.347 回答
1

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

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

于 2013-08-16T17:55:49.833 回答