Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to programmatically push a ToggleButton?

I have this code which can programmatically push a button, but I would like a version to work for 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();
}

So I tried the 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. 
}
like image 926
patrick Avatar asked Sep 18 '25 20:09

patrick


1 Answers

You can use the 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();
}
like image 159
Bojin Li Avatar answered Sep 20 '25 10:09

Bojin Li