在鼠标单击时获取鼠标光标下的元素名称

本文关键字:鼠标 元素 光标 单击 获取 | 更新日期: 2023-09-27 18:16:22

我试图使一个方法,我可以得到被点击的元素。在App.xaml.cs中,我有OnPreviewMouseDown方法,它在应用程序中的每次点击时被激活。

现在我需要一些帮助从发送者获取元素名称(如果这是可能的)

 static void OnPreviewMouseDown(object sender, MouseButtonEventArgs e)
    {
        if (e.RightButton == MouseButtonState.Pressed)
        {
            Control control = (Control)sender;   // Sender gives you which control is clicked.
            string name = control.Name.ToString();  //returns main window name, not element....
            string typee = sender.GetType().ToString();  //returns PPPMain.Views.MainWindow
        }
    }

我尝试了这个和其他一些来自互联网的建议,但没有找到任何解决方案…

提前感谢!

在鼠标单击时获取鼠标光标下的元素名称

使用MouseButtonEventArgs的OriginalSource属性:

var element = e.OriginalSource as FrameworkElement;
var name = element?.Name;

您可以尝试在事件中使用以下代码:

VisualTreeHelper.HitTest(this, e.GetPosition(this));

您可以在其他主题中找到更多信息:WPF在鼠标

下获取元素