如何获取当前专注于XAML应用程序的文本框的名称?
我已尝试过以下操作,但不断收到以下错误消息:Object reference not set to an instance of an object
。我做错了什么?
var textbox = Keyboard.FocusedElement as TextBox;
MessageBox.Show(textbox.Name);
答案 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}" />