我如何在C#WPF中的画布上聆听鼠标左键?

我如何在C#WPF中的画布上聆听鼠标左键?,c#,wpf,xaml,mouseevent,C#,Wpf,Xaml,Mouseevent,我试图在窗口的任何位置(按钮所在的位置除外,但稍后我会处理)听到鼠标单击,然后返回该位置的点(x,y) 以下是相关代码: private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e) { Console.WriteLine("mouseLeft is clicked"); Point x = e.MouseDevice.GetPosition(this); Console.Wri

我试图在窗口的任何位置(按钮所在的位置除外,但稍后我会处理)听到鼠标单击,然后返回该位置的点(x,y)

以下是相关代码:

 private void Grid_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
{
    Console.WriteLine("mouseLeft is clicked");
    Point x = e.MouseDevice.GetPosition(this);
    Console.WriteLine(x.X);
    Console.WriteLine(x.Y);
}

<Canvas MouseLeftButtonDown="Grid_MouseLeftButtonDown">
private void Grid\u MouseLeftButtonDown(对象发送器,MouseButtonEventArgs e)
{
Console.WriteLine(“鼠标点击”);
点x=e.MouseDevice.GetPosition(此);
控制台写入线(x.x);
控制台写入线(x.Y);
}
单击时,不会打印任何内容。我到底做错了什么?第一个方法是mainWindow.Xaml.cs内部


提前感谢。

在GUI应用程序中,有时事情无法正确写入控制台,请尝试使用Debug.WriteLine、MessageBox.Show或设置断点以查看是否触发事件


您的代码看起来非常好。

将背景设置为透明,并设置画布的大小

我只是用了messagebox.show,运气不好。没有调用该方法。画布中是否有任何内容或它是空的?我有3个按钮,但除此之外它是空的。好的,这就是问题所在。使用WPF控件时,必须有一些与后面的部分不同的可见部分才能单击。如果您在画布上设置的背景颜色与背景颜色不同,则应获得单击事件。