gpt4 book ai didi

c# - 激活作为 AutomationElement 检索的 TabControl 中的选项卡

转载 作者:太空宇宙 更新时间:2023-11-03 15:04:19 24 4
gpt4 key购买 nike

我使用 UIAutomationClient API 检索了一个 AutomationElement t:

AutomationElement t = AutomationElement.RootElement.FindFirst(...);

t 的 WPF 对应物是 TabControl 内的 TabItem。我想激活 t 代表的选项卡(即将 t 置于前台)。 我该怎么做?

我尝试了 t.SetFocus();,但它根本没有任何(可见的)效果。

如果我有 TabItem(我们称它为 tabItem),我会调用

tabItem.IsSelected = true;

所以我想通过使用选择模式我可以实现相同的目的:

var p = t.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;
p.Select();

原来 pIsSelected 属性在选择它之前已经是 true - 所以调用 Select 仍然没有选择/激活选项卡。但是在 GUI 中,TabItem 显然没有被选中/激活。

最佳答案

我遇到了同样的问题,这是我的解决方案,希望对您有所帮助,即使已经很晚了。

示例用户界面:

Example

示例代码:

 AutomationElement aeDesktop = AutomationElement.RootElement;
AutomationElement aeForm = aeDesktop.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "davinceleecode"));
AutomationElement aeTabControl = aeForm.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.AutomationIdProperty, "tabControl1"));
aeTabControl.SetFocus();

AutomationElement aeTabPage = aeTabControl.FindFirst(TreeScope.Descendants, new PropertyCondition(AutomationElement.NameProperty, "tabPage2"));
SelectionItemPattern changeTab_aeTabPage = aeTabPage.GetCurrentPattern(SelectionItemPattern.Pattern) as SelectionItemPattern;

changeTab_aeTabPage.Select();

请检查 IsKeyboardFocusable 属性并确保将其设置为 true

enter image description here

关于c# - 激活作为 AutomationElement 检索的 TabControl 中的选项卡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44494525/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com