如何以编程方式访问焦点元素 WPF C#

How to access focused element programmatically WPF C#

想知道我应该如何访问具有焦点的元素 属性。我找到了以下代码来查找焦点元素:

var focusedControl = FocusManager.GetFocusedElement(this);

这似乎运行良好,在调试中 "focusedcontrol" 是正确的元素,但我不知道如何以编程方式访问它。像 :

focusedControl.Text = "txt";

我想这样做的原因 - 在与文本框相同的 window 中,我有几个按钮组成一个键盘。点击 Button (Focusable = False) 后,我想引用聚焦的 TextBox 并在 TextBox.Text.

中插入相应的数字

谢谢 卢卡斯

GetFocusedElement()方法returnsIInputElement,不是TextBox

由于 FrameworkElement 实现 IInputElement,并且 Control(和 TextBox)派生自 FrameworkElement,您可以将结果转换为 TextBox 你自己:

var focusedControl = FocusManager.GetFocusedElement(this);

var tBox = focusedControl as TextBox;

if (tBox != null)
    tBox.Text = "txt";