【问题标题】:How to access focused element programmatically WPF C#如何以编程方式访问焦点元素 WPF C#
【发布时间】:2015-12-30 00:21:20
【问题描述】:

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

var focusedControl = FocusManager.GetFocusedElement(this);

这似乎运作良好,在调试中“focusedcontrol”是正确的元素,但我不知道如何以编程方式访问它。类似的东西:

focusedControl.Text = "txt";

我想这样做的原因 - 在与 TextBoxes 相同的窗口中,我有几个按钮组成了一个键盘。点击 Button (Focusable = False) 后,我想获得对焦点 TextBox 的引用并在 TextBox.Text 中插入相应的数字。

谢谢 卢卡斯

【问题讨论】:

    标签: c# wpf focus controls


    【解决方案1】:

    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";
    

    【讨论】:

      最近更新 更多