c# - 如何以编程方式推送 ToggleButton?

标签 c# wpf ui-automation

我有这段代码可以以编程方式按下按钮,但我想要一个适用于 ToggleButton 的版本。

public static void PushButton(Button b)
{
     ButtonAutomationPeer peer = new ButtonAutomationPeer(b);
     System.Windows.Automation.Provider.IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as System.Windows.Automation.Provider.IInvokeProvider;
     invokeProv.Invoke();
}

所以我尝试了 ToggleButtonAutomationPeer...

public static void PushButton(ToggleButton b)
{
  ToggleButtonAutomationPeer peer = new ToggleButtonAutomationPeer(b);
  System.Windows.Automation.Provider.IInvokeProvider invokeProv = peer.GetPattern(PatternInterface.Invoke) as System.Windows.Automation.Provider.IInvokeProvider;

//But invokeProv is null.   Peer is ok. 
}

最佳答案

您可以使用 Toggle Button Automation Peer

public static void PushToggleButton(ToggleButton b)
{
    ToggleButtonAutomationPeer peer = new ToggleButtonAutomationPeer(b);
    System.Windows.Automation.Provider.IToggleProvider toggleProvider = peer.GetPattern(PatternInterface.Toggle) as System.Windows.Automation.Provider.IToggleProvider;
    toggleProvider.Toggle();
}

关于c# - 如何以编程方式推送 ToggleButton?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10148264/

相关文章:

c# - 使用 Jenkins 的 Maven 聚合器对 c# 多模块项目进行 Sonarqube StyleCop 分析

c# - Prism 程序集引用失败 : System. Windows.Interactivity

wpf - ADFS vNext 客户端身份验证 (WPF) (Windows Server 2016 Preview 3)

selenium - 是否可以使用 appium 和 nightwatchjs 为移动 native 应用程序编写测试?

java - 无法访问 Selenium 中的元素(缩放和滚动不起作用)

python - 如何选择弹出消息 "Allow",它是 HTML 页面的 Span 元素。预计使用 find_element_by_css_selector 解决方案

c# - 如何强制 Kentico 默认生成小写 url?

c# - lambda 表达式的对象初始化器/构造函数自引用

c# - DataWindowButton CanExecute 未触发,Catel 4.0

c# - 日期类型的问题