给出以下事件处理程序代码:
transtion:0.5s;
如何从另一种方法调用它:
private void image1_MouseDown(object sender, MouseButtonEventArgs e)
{
///////////
}
答案 0 :(得分:0)
事件处理程序是常规方法,就像其他方法一样。
之所以不能像您尝试的那样调用它,是因为MouseDown
事件采用一个MouseButtonEventArgs
实例,而计时器的Tick
事件采用了基数。类EventArgs
。
您需要创建MouseButtonEventArgs
的新实例,但是随后需要使用设备和其他事件数据对其进行初始化。
一个更好的选择是将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.
}