如何检查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,然后获得AutomationElement.FocusedElement并对它们进行比较。如果它们是相同的,那么它是聚焦的。

同时,AutomationElement.Current也应该具有HasKeyboardFocus的属性。

相关文章:
  • 没有找到相关文章