我在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);
}
答案 0 :(得分:0)
您可以获得与您关注的控件关联的AutomationElement,然后获取AutomationElement.FocusedElement并进行比较。如果它们是相同的,那么它就是重点。
此外,AutomationElement.Current应具有HasKeyboardFocus属性。你可以看看它是否能为你提供所需的信息。