如何检查AutomationElement是否有焦点
本文关键字:AutomationElement 是否 焦点 检查 何检查 | 更新日期: 2023-09-27 18:08:09
我正在UI Automation的帮助下进行集成测试。我需要检查用户控件是否有焦点(IsFocused = true)。这可能吗?我尝试使用AutomationElement。FocusedElement,但据我所知,它返回不同的控制(可能在我的应用程序之外)。
我控制:<UserControl GotFocus="UserControl_GotFocus" Focusable="True">
<DockPanel>
<Button DockPanel.Dock="Right" Content=">" IsTabStop="False" Focusable="False" Click="TextButton_Click" />
<TextBox Text="{Binding Text}" x:Name="textBox" />
</DockPanel>
背后代码:
private void UserControl_GotFocus(object sender, RoutedEventArgs e)
{
textBox.Focus();
Keyboard.Focus(textBox);
}
您可以获得与您关心的控件关联的AutomationElement
,然后获得AutomationElement.FocusedElement
并对它们进行比较。如果它们是相同的,那么它是聚焦的。
同时,AutomationElement.Current
也应该具有HasKeyboardFocus
的属性。