在WPF开发过程中,某些场景下,需要模拟点击按钮进行某些操作,也就是用代码调用某些接口,实现对于按钮的点击。但是Button控件提供的接口中并没有这样的方法,它只提供了Click事件。解决办法如下:
ButtonAutomationPeer peer =
new ButtonAutomationPeer( someButton );
IInvokeProvider invokeProv =
peer.GetPattern( PatternInterface.Invoke )
as IInvokeProvider;
invokeProv.Invoke();
对于ToggleButton而言,解决办法如下:
ToggleButtonAutomationPeer peer = new ToggleButtonAutomationPeer(someButton);
System.Windows.Automation.Provider.IToggleProvider toggleProvider = peer.GetPattern(PatternInterface.Toggle) as System.Windows.Automation.Provider.IToggleProvider;
toggleProvider.Toggle();
但是对于ToggleButton,在我的程序中,调用上述代码,发现程序没有反应。经过调查主要原因如下,我的ToggleButton控件的IsChecked属性绑定了后台的数据,并设定了绑定模式为OneWay。 <