2

我有一个用户控件Focusable=trueIsTabStop=true

我可以使用 Tab 键聚焦它。但我需要从代码中关注它。

我试过了uc.Focus()Keyboard.Focus(uc)但它不起作用。

4

2 回答 2

4

光辉大概是对的。如果 WPF 正在执行一些渲染/布局更新,您希望稍微推迟 .Focus() 任务并且不妨碍 WPF。试试这个:

using System.Windows.Threading;

...

Action focusAction = () => uc.Focus();
this.Dispatcher.BeginInvoke(focusAction, DispatcherPriority.ApplicationIdle);
于 2012-12-21T00:10:02.183 回答
2

尝试使用FocusManager.SetFocusedElement

FocusManager.SetFocusedElement(parentElement, uc);
于 2012-12-20T15:33:41.453 回答