Подскажите, как в приложении WPF эмулировать программно нажатие на кнопку Button левой клавишей мыши? Использовать button1.PerformClick() не предлагать, в WPF нет такого метода у Button.
Способ 1:
this.button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
Способ 2:
typeof(System.Windows.Controls.Primitives.ButtonBase)
.GetMethod("OnClick", BindingFlags.Instance | BindingFlags.NonPublic)
.Invoke(button, new object[0]);
Пример:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private void button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("КНОПКА НАЖАТА");
}
private void button1_Click(object sender, RoutedEventArgs e)
{
this.button.RaiseEvent(new RoutedEventArgs(Button.ClickEvent));
}
private void button2_Click(object sender, RoutedEventArgs e)
{
typeof(System.Windows.Controls.Primitives.ButtonBase).GetMethod("OnClick", BindingFlags.Instance | BindingFlags.NonPublic).Invoke(button, new object[0]);
}
}
Сборка персонального компьютера от Artline: умный выбор для современных пользователей