WPF,将键盘焦点给予之前已被折叠的控件

4

我试图在演示更改序列期间使特定的控件获得键盘焦点。假设一个控件的可见性状态是隐藏的。在一个函数调用中,我可以将其可见性更改为可见,并且没有问题地将键盘焦点设置在它上面。但是,如果该控件被设置为折叠状态,并且我试图将其可见性设置回可见,然后对其进行焦点设置,则无法成功。

有没有一种方法可以允许控件从折叠状态转移到可见状态并获取键盘焦点?

2个回答

2

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

你仍然可以聚焦你的控件,但需要将焦点操作排队,直到控件被正确初始化。只需像下面所示使用BeginInvoke调用即可。

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

1

这不是控件初始化的问题,而是转换视觉状态的问题。

仅为了结束此事,通过调用control.UpdateLayout()解决了该问题。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接