get the name of the element on which I `clicked` / `mousedown`
c#, wpf, xaml
Solution
RoutedEventArgs has property Source that Gets or sets a reference to the object that raised the event. Try this
xaml.cs
private void Grid_MouseDown_1(object sender, MouseButtonEventArgs e)
{
var mouseWasDownOn = e.Source as FrameworkElement;
if (mouseWasDownOn != null)
{
string elementName = mouseWasDownOn.Name;
}
}
xaml
<Grid PreviewMouseDown="Grid_MouseDown_1">
<StackPanel>
<ComboBox ItemsSource="{Binding ItemsSource}"/>
<Button Content="ok"/>
</StackPanel>
</Grid>
Khushi sara project stackoverflow walon se he karana hai kya :)
Problem
I have a page whose root element is a Grid named `Root`. I have many controls like `TextBlock`, `TextBox`, `Grid`, `Rectangle`, `Border` etc... who are children of `Root`. Now, I want to have a `MouseDown` or `PreviewMouseDown` or `Click` on `Root` to find the name of the element on which I clicked. So, how can I get the name of the element on which I `clicked` / `mousedown` ? If I can get a solution that uses Tunneling, It will be much easier.