我有一个非常简单的应用程序,但它出现了问题。我有一个按钮(在网格上),我想知道当用户在运行时单击它时,用户单击了按钮的哪个部分(X,Y坐标)。现在,我无法在单击事件处理程序中跟踪鼠标位置,因为它的参数“e”是“RoutedEventArgs”类型,并且它不提供鼠标单击发生位置的点的位置。
因此,我尝试了另一个事件处理程序,“MouseLeftButtonDown”事件。这有一个参数“e”,它提供了一个可以提供鼠标光标位置的GetPosition()方法。但问题是,在运行时单击按钮时,根本不调用此事件处理程序!这是我两个事件处理程序的代码:
如果我只保留点击事件处理程序,它就有效。如果我只保留MouseLeftButtonDown事件处理程序,它就无效。如果两个都保留,那么只有点击事件处理程序被调用!请问有人可以帮忙吗?谢谢!
因此,我尝试了另一个事件处理程序,“MouseLeftButtonDown”事件。这有一个参数“e”,它提供了一个可以提供鼠标光标位置的GetPosition()方法。但问题是,在运行时单击按钮时,根本不调用此事件处理程序!这是我两个事件处理程序的代码:
private void button1_Click(object sender, RoutedEventArgs e)
{
string sName = sender.GetType().Name;
string sSrc = e.Source.ToString();
string soSrc = e.OriginalSource.ToString();
MessageBox.Show("Sender Name: " + sName + ",\nSource: " + sSrc + ",\nOrigSource: " + soSrc + ",\nevent:" + e.RoutedEvent.ToString());
}
private void button1_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
string sName = sender.GetType().Name;
string sSrc = e.Source.ToString();
string soSrc = e.OriginalSource.ToString();
textBox1.Text = "LeftButtonPressed on button1";
}
如果我只保留点击事件处理程序,它就有效。如果我只保留MouseLeftButtonDown事件处理程序,它就无效。如果两个都保留,那么只有点击事件处理程序被调用!请问有人可以帮忙吗?谢谢!