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

本文关键字:访问 焦点 元素 方式 编程 | 更新日期: 2023-09-27 18:15:48

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

var focusedControl = FocusManager.GetFocusedElement(this);

这似乎工作得很好,在调试"focusedcontrol"是正确的元素,但我不知道如何以编程方式访问它。例如:

focusedControl.Text = "txt";

我想这样做的原因-在相同的窗口作为文本框,我有几个按钮,形成一个小键盘。点击按钮(可聚焦= False)后,我想获得对聚焦文本框的参考并在TextBox. text中插入相应的数字。

谢谢卢卡斯

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

GetFocusedElement()方法返回IInputElement,而不是TextBox

由于FrameworkElement实现了IInputElement,而Control(和TextBox)派生自FrameworkElement,您可以自己将结果强制转换为TextBox:

var focusedControl = FocusManager.GetFocusedElement(this);
var tBox = focusedControl as TextBox;
if (tBox != null)
    tBox.Text = "txt";