c# - 获取我 `clicked`/`mousedown` 所在元素的名称

标签 c# wpf xaml

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

我有很多控件,例如 TextBlockTextBoxGridRectangleBorder 等等...他们是 Root 的 child 。

现在,我想在 Root 上使用 MouseDownPreviewMouseDownClick 来查找名称我点击的元素。

那么,如何获取我单击/mousedown 的元素的名称?

如果我能得到一个使用隧道的解决方案,那就容易多了。

最佳答案

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 he karana hai kya :)

关于c# - 获取我 `clicked`/`mousedown` 所在元素的名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20930759/

相关文章:

c# - 被遗弃的命名信号量未被释放

c# - 如何使用 ASP.NET 从个人商店加载客户端证书?

c# - 为什么 ASP.NET session 的过期时间早于其超时时间?

wpf - 如何禁用 WPF TextBox 中的快捷方式

c# - WPF MultiBinding 在 Syncfusion TabItemExt header 中失败

xaml - 如何在 XAML 中绑定(bind) listview 的项目数

c# - 从线程池访问 WebBrowsers

c# - 将对象从父 View 传递到 MVVM 中的 subview

c# - 在 UWP 应用程序上滚动时禁用枢轴滑动

c# - 使用交互触发器调用可见性更改方法 WPF