我有一個非常簡單的應用程序,但它是一個問題。我有一個按鈕(在網格上),我想知道,當用戶在運行時點擊它時,用戶點擊了按鈕(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 –