我有一个非常简单的应用程序,但它是一个问题。我有一个按钮(在网格上),我想知道,当用户在运行时点击它时,用户点击了按钮(X,Y坐标)的哪一部分。现在,我无法在Click事件处理程序中跟踪鼠标位置,因为它的参数“e”是类型“RoutedEventArgs”,并且它没有给出发生鼠标点击的位置。Wpf应用程序没有正确响应事件
因此我尝试了其他事件处理程序“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事件处理程序,它不起作用。如果我保持这两者,那么只有Click事件处理程序被调用!任何人都可以帮忙吗?
在此先感谢。
删除messagebox –