我的程序使用ShowActivated=false
创建一个窗口,这样它在打开时不会窃取键盘焦点(创建窗口是为了响应来自网络的事件)。我希望能够指定特定的TextBox字段在用户切换到窗口时获得焦点。但是,看似显而易见的方法(在窗口标记中使用FocusManager.FocusedElement
,或在显示窗口时调用this.textbox.Focus()
)会产生激活窗口的副作用。
我最终为窗口的Activated
事件添加了一个事件处理程序,其中(a)进行了所需的Focus()
调用,并且(b)将自己从Activated
事件中删除,因此它只发生过一次。这看起来很狡猾。我错过了什么吗?