我有一个用户控件Focusable=true
和IsTabStop=true
。
我可以使用 Tab 键聚焦它。但我需要从代码中关注它。
我试过了uc.Focus()
,Keyboard.Focus(uc)
但它不起作用。
我有一个用户控件Focusable=true
和IsTabStop=true
。
我可以使用 Tab 键聚焦它。但我需要从代码中关注它。
我试过了uc.Focus()
,Keyboard.Focus(uc)
但它不起作用。
光辉大概是对的。如果 WPF 正在执行一些渲染/布局更新,您希望稍微推迟 .Focus() 任务并且不妨碍 WPF。试试这个:
using System.Windows.Threading;
...
Action focusAction = () => uc.Focus();
this.Dispatcher.BeginInvoke(focusAction, DispatcherPriority.ApplicationIdle);
尝试使用FocusManager.SetFocusedElement
FocusManager.SetFocusedElement(parentElement, uc);