WPF窗口设置焦点

14

我有一个 WPF 窗口,它只创建一次并多次使用 Show() 和 Hide() 方法。现在我正在寻找一种方式,在每次 Show() 方法时将焦点设置到特定元素上。我应该在哪里以及如何实现这个功能呢?


2
使用窗口的“Activated”事件。 - Navid Rahmani
有点挑剔:这不是用户界面指南,但从用户体验的角度来看,用户不喜欢乱弄他们设置好的东西。比如,如果我将焦点设置到文本框中,然后按下alt+tab复制一些值,如果您隐藏或显示表单,我希望仍然停留在该文本框中。当然,你的问题可能受到用户需求的启发。在这种情况下,请忘记一切 :) - Marino Šimić
2个回答

33

只需在要聚焦的元素上调用Element.Focus()。

如果您想将焦点带到窗口,请尝试调用window.Activate()


4
在WPF中,有两个与焦点相关的主要概念:键盘焦点和逻辑焦点。键盘焦点是指接收键盘输入的元素,逻辑焦点是指在焦点范围内具有焦点的元素。这些概念在概述中详细讨论。
您可以通过在同一方法中包含Window.Show/Hide和element.Focus功能来编写自己的ShowHide方法,以便同时处理两者。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接