c# - WPF,将键盘焦点提供给以前折叠的控件

标签 c# wpf wpf-controls

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

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

最佳答案

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

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

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

关于c# - WPF,将键盘焦点提供给以前折叠的控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17846271/

相关文章:

c# - 获取已删除的 DataGridView 行的单元格值

wpf - 如何从 ListViewItem 获取 ListView?

c# - Sonar-msbuild-runner 退出并出现 255 错误,故障 CLR 模块

c# - Windows 10 在使用已注册的动词调用 ShellExecute 时出错

c# - WPF 数据网格和 Tab 键

wpf - 如何恢复工具栏上复选框的默认样式?

wpf - 如何在 UserControl 和父窗口之间绑定(bind) WPF 命令

c# - 带图像的 WPF 单选按钮

.net - WPF - TabControl - 防止选择更改

c# - Sourcetable.Select 提供 2 列数据不起作用