获取当前焦点的文本框的名称

时间:2014-09-18 23:27:09

标签: c# wpf xaml

如何获取当前专注于XAML应用程序的文本框的名称?

我已尝试过以下操作,但不断收到以下错误消息:Object reference not set to an instance of an object。我做错了什么?

var textbox = Keyboard.FocusedElement as TextBox;
MessageBox.Show(textbox.Name);

1 个答案:

答案 0 :(得分:1)

如果有焦点的元素不是TextBox,你就会得到你所看到的异常,所以你应该测试一下:

var textbox = Keyboard.FocusedElement as TextBox;

if (textbox != null)
    MessageBox.Show(textbox.Name);

此外,如果在按钮单击(例如)中执行此代码,则必须通过将“Focusable”设置为false来确保按钮不能从当前具有的任何元素中窃取焦点:

<Button Content="Press" Focusable="False" Command="{Binding Path=PressCommand}" />