Как эмулировать нажатие на кнопку в приложении WPF C#

192
03 мая 2018, 06:51

Подскажите, как в приложении WPF эмулировать программно нажатие на кнопку Button левой клавишей мыши? Использовать button1.PerformClick() не предлагать, в WPF нет такого метода у Button.

Answer 1

Способ 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]);
    }
}

READ ALSO
SaveChanges() как работает?

SaveChanges() как работает?

При использовании на контексте SaveChanges() или SaveChangesAsync() после добавления какого-то элемента в экземпляр контекста изменения сохраняются только...

218
DateTime.CompareTo() можно ли сделать сравнение без учета миллисекунд?

DateTime.CompareTo() можно ли сделать сравнение без учета миллисекунд?

DateTimeCompareTo(Date) сравнивает экземпляр из базы данных, и Date-данные которые пришли от клиента

238
.net core c# строковая версия массива в массив

.net core c# строковая версия массива в массив

уважаемые форумчане! Хочу написать для контрольной работы - магазинчикУже спарсил на php один сайт, поместил информацию в mysql (некоторые данные...

230
Как можно реализовать самому простой SMTP client(System.Net.Mail)?

Как можно реализовать самому простой SMTP client(System.Net.Mail)?

При помощи каких средств можно реализовать самому SMTP client(SystemNet

217