如何在不激活窗口(WPF)的情况下设置最初聚焦的元素?

van*_*lle 5 wpf focus

我的程序创建一个带有 的窗口ShowActivated=false,这样它在打开时就不会窃取键盘焦点(该窗口是为了响应来自网络的事件而创建的)。我希望能够指定当用户切换到窗口时特定的 TextBox 字段接收焦点。然而,看似显而易见的方法(FocusManager.FocusedElement在窗口的标记中使用,或this.textbox.Focus()在显示窗口时调用)具有激活窗口的副作用。

我最终为窗口的Activated事件添加了一个事件处理程序,它 (a) 进行所需的Focus()调用,(b) 将其自身从Activated事件中删除,以便它只发生一次。这看起来很粗糙。我错过了什么吗?