得到我“点击”/“mousedown”的元素的名称

时间:2014-01-05 06:14:38

标签: c# wpf xaml

我有一个页面,其根元素是名为Root的网格。

我有很多控件,例如TextBlockTextBoxGridRectangleBorder等... Root的孩子

现在,我想在MouseDown上设置PreviewMouseDownClickRoot来查找我点击的元素的名称。

那么,我怎样才能得到clicked / mousedown所在元素的名称?

如果我能获得使用隧道的解决方案,那将更容易。

1 个答案:

答案 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:)