WPF-如何从代码隐藏集中用户控件

WPF-如何从代码隐藏集中用户控件,wpf,user-controls,focus,Wpf,User Controls,Focus,我有一个用户控件,具有Focusable=true和IsTabStop=true 我可以使用Tab键对焦。但我需要把重点放在代码上 我尝试了uc.Focus()和Keyboard.Focus(uc),但没有成功 尝试使用 Tejas可能是对的。如果WPF正在进行一些渲染/布局更新,那么您希望稍微推迟.Focus()任务,而不要妨碍WPF的工作。试试这个: using System.Windows.Threading; ... Action focusAction = () => uc.

我有一个用户控件,具有
Focusable=true
IsTabStop=true

我可以使用Tab键对焦。但我需要把重点放在代码上

我尝试了
uc.Focus()
Keyboard.Focus(uc)
,但没有成功

尝试使用


Tejas可能是对的。如果WPF正在进行一些渲染/布局更新,那么您希望稍微推迟.Focus()任务,而不要妨碍WPF的工作。试试这个:

using System.Windows.Threading;

...

Action focusAction = () => uc.Focus();
this.Dispatcher.BeginInvoke(focusAction, DispatcherPriority.ApplicationIdle);

这可能是因为其他控件在获得焦点的那一刻就从
UserControl
窃取了焦点。
using System.Windows.Threading;

...

Action focusAction = () => uc.Focus();
this.Dispatcher.BeginInvoke(focusAction, DispatcherPriority.ApplicationIdle);