【问题标题】:WPF Window set FocusWPF 窗口设置焦点
【发布时间】:2011-09-17 17:56:37
【问题描述】:

我有一个 WPF 窗口,我只创建一次,然后多次创建 Show() 和 Hide()。现在我正在寻找一种方法来将焦点设置在每个 Show() 上的一个元素上。我可以在哪里以及如何做到这一点?

【问题讨论】:

  • 使用窗口的激活事件
  • 只是为了挑剔:这不是用户界面指南,但从用户体验来看,用户不喜欢弄乱他们设置的内容。 IE。如果我将焦点设置到一个文本框,那么如果你隐藏并显示我希望仍在该文本框中的表单,则 alt-tab 复制一些值。但当然,您的问题可以受到用户需求的启发。在那种情况下,忘记一切吧:)

标签: c# .net wpf window setfocus


【解决方案1】:

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

如果您的意思是将焦点放在窗口上,请尝试调用 window.Activate()

【讨论】:

    【解决方案2】:

    在 WPF 中有两个与焦点相关的主要概念:键盘焦点和逻辑焦点。键盘焦点是指接收键盘输入的元素,逻辑焦点是指焦点范围内具有焦点的元素。 this 概述中详细讨论了这些概念。

    您可能可以编写自己的 ShowHide 方法,方法是同时包含 Window.Show/Hide 和 element.Focus 功能,以便在同一方法中处理两者。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-08
      • 2012-09-17
      • 2011-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-10
      相关资源
      最近更新 更多