Обработчики событий являются обычными методами, как и любые другие.
Причина, по которой вы не можете вызывать это так, как пытаетесь сделать, заключается в том, что событие MouseDown
принимает экземпляр MouseButtonEventArgs
, в то время какTick
событие таймеров принимает базовый класс EventArgs
.
Вам нужно будет создать новый экземпляр MouseButtonEventArgs
, но затем вам нужно будет инициализировать его с устройством и другим событиемdata.
Лучшим вариантом было бы реорганизовать тело обработчика события MouseDown
в метод, принимающий отдельные параметры, которые затем можно вызывать, не создавая MouseButtonEventArgs
экземпляр.
private void image1_MouseDown(object sender, MouseButtonEventArgs e)
{
this.ProcessImageMouseDown(e.ChangedButton, e.ButtonState, e.GetPosition(sender as FrameworkElement));
}
private void timerTick(object sender, EventArgs e)
{
this.ProcessImageMouseDown(MouseButton.Left, MouseButtonState.Pressed, new Point(10d, 20d));
}
private void ProcessImageMouseDown(MouseButton button, MouseButtonState state, System.Windows.Point position)
{
// Do actual processing here.
}