今天开发功能的需要用到TextBox 获取焦点
发现焦点获取失败
参试以下两种方案
方案一 TextBox.Focus();
方案二 Keyboard.Focus(IInputElement element);
都无法实现,开始怀疑不是在同一个线程 于是加了
this.Dispatcher.BeginInvoke((Action)delegate ()
{
方案一 TextBox.Focus();
方案二 Keyboard.Focus(IInputElement element);
});
依旧无法实现
经过排查是 Textbox 所在的区域 在业务流程中会先被隐藏
Visibility=Visibility.Collapsed
然后再显示
Visibility=Visibility.Visible
会导致控件一直无法获取焦点
目前简单的解决方案就是不隐藏,用其他UI直接遮罩
待验证方案
先对区域Focus(),然后在对控件进行Focus();