我有一个页面,其根元素是名为Root
的网格。
我有很多控件,例如TextBlock
,TextBox
,Grid
,Rectangle
,Border
等... Root
的孩子
现在,我想在MouseDown
上设置PreviewMouseDown
或Click
或Root
来查找我点击的元素的名称。
那么,我怎样才能得到clicked
/ mousedown
所在元素的名称?
如果我能获得使用隧道的解决方案,那将更容易。
答案 0 :(得分:4)
RoutedEventArgs具有属性Source,用于获取或设置对引发事件的对象的引用。试试这个
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项目stackoverflow walon se karana hai kya:)