WPF,键盘焦点控制以前折叠

时间:2013-07-24 23:02:25

标签: c# wpf wpf-controls

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

我是否可以使用一个进程来让控件从折叠状态移动到可见状态并以键盘为焦点?

2 个答案:

答案 0 :(得分:2)

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

您仍然可以集中控制,但是您需要将焦点操作排队,直到控件正确初始化为止。只需使用如下所示的BeginInvoke调用就可以了。

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

答案 1 :(得分:1)

这不是控件初始化的问题。这又是一个过渡视觉状态的问题。

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