单击鼠标获取鼠标光标下的元素名称
get name of element under mouse cursor on mouse click
我正在尝试制作一种方法,让我可以获取被单击的元素。在 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
}
}
我尝试了这个和来自互联网的其他一些建议,但没有找到任何解决方案...
提前致谢!
您可以尝试在您的活动中使用此代码:
VisualTreeHelper.HitTest(this, e.GetPosition(this));
您可以在其他主题中找到更多信息:WPF Get Element(s) under mouse
使用 MouseButtonEventArgs 的 OriginalSource
属性:
var element = e.OriginalSource as FrameworkElement;
var name = element?.Name;
我正在尝试制作一种方法,让我可以获取被单击的元素。在 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
}
}
我尝试了这个和来自互联网的其他一些建议,但没有找到任何解决方案...
提前致谢!
您可以尝试在您的活动中使用此代码:
VisualTreeHelper.HitTest(this, e.GetPosition(this));
您可以在其他主题中找到更多信息:WPF Get Element(s) under mouse
使用 MouseButtonEventArgs 的 OriginalSource
属性:
var element = e.OriginalSource as FrameworkElement;
var name = element?.Name;