我有Focusable=true
和IsTabStop=true
的用戶控件。WPF - 如何從代碼集中的用戶控件背後
我可以用Tab鍵關注它。但我需要從代碼中關注它。
我試圖uc.Focus()
和Keyboard.Focus(uc)
,但它不工作。
我有Focusable=true
和IsTabStop=true
的用戶控件。WPF - 如何從代碼集中的用戶控件背後
我可以用Tab鍵關注它。但我需要從代碼中關注它。
我試圖uc.Focus()
和Keyboard.Focus(uc)
,但它不工作。
Tejas的可能是正確的。如果WPF正在進行一些渲染/佈局更新,您希望稍微推遲.Focus()任務,而不是以WPF的方式獲取。試試這個吧:
using System.Windows.Threading;
...
Action focusAction =() => uc.Focus();
this.Dispatcher.BeginInvoke(focusAction, DispatcherPriority.ApplicationIdle);
嘗試使用FocusManager.SetFocusedElement
FocusManager.SetFocusedElement(parentElement, uc);
它可能只是一些其他的控件是從你的'UserControl'的第二個焦點偷走焦點。 –