我只想弄清楚这个。为什么按钮IInvokeProvider
在没有进行任何显式设置的情况下调用click事件?如果我想自动执行MouseEnter
或MouseLeave
等其他方法,该怎么办?是什么让它假设当你调用Invoke()
方法时它应该执行Click
事件?
这是我的代码:
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ButtonAutomationPeer buttonPeer = new ButtonAutomationPeer(button);
IInvokeProvider invokeProvider = buttonPeer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
invokeProvider.Invoke(); // this triggers button_Click handler
}
private void button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("Button clicked!");
}
谢谢!
答案 0 :(得分:3)
IInvokeProvider接口是System.Windows.Automation系列命名空间的一部分,也称为 WUIA(Windows用户界面自动化)。 WUIA旨在支持可访问性客户端(屏幕阅读器等)以支持例如盲人用户。 IInvokeProvider.Invoke()方法正在实现UI元素上调用默认操作。在您的情况下,按钮上的默认操作是单击事件。
您必须使用其他界面调用鼠标事件。