模拟按键和/或实例化forms.button

时间:2013-11-16 00:18:52

标签: c# winforms

在WPF应用程序中,我正在尝试创建一个按钮,使用button.performclick按下按键,但我不确定如何实例化并向我的UI添加一个forms.button。目前我正在使用controls.button,如果有办法用那些对我来说简单得多的方法。 这就是我想要做的事情:

System.Windows.Forms.Button ButtonA = new System.Windows.Forms.Button();
beatGrid.Children.Add(ButtonA);

但我收到此错误: 'system.windows.control.uielementcollection.add(system.windows.uielement)'的最佳重载方法匹配有一些无效的参数

1 个答案:

答案 0 :(得分:0)

看起来您正在使用WPF,但不知道WPF中Button的实际类,这里是:

System.Windows.Controls.Button ButtonA = new System.Windows.Controls.Button();

但是,您应该使用XAML代码进行UI设置。因为它已经过优化,可以在XAML中使用,而且程序代码会变得很尴尬。

更新

要在WPF中以编程方式点击按钮,我们必须使用Automation,这有点棘手。为方便起见,请尝试使用此扩展方法:

public static class ButtonExtension {
  public static void PerformClick(this Button button){
    var buttonPeer = new System.Windows.Automation.Peers.ButtonAutomationPeer(button);
    var invoker = buttonPeer.GetPattern(PatternInterface.Invoke) as IInvokeProvider;
    invoker.Invoke();
  }
}
//Usage
yourButton.PerformClick();

我希望您了解如何使用extension method