如何以编程方式推送ToggleButton?

ast*_*ght 0 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();
}
Run Code Online (Sandbox Code Playgroud)

所以我尝试了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. 
}
Run Code Online (Sandbox Code Playgroud)

Boj*_* Li 7

您可以使用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();
}
Run Code Online (Sandbox Code Playgroud)