如何在 C# 中找到 XAML 元素的名称?

Posted

技术标签:

【中文标题】如何在 C# 中找到 XAML 元素的名称?【英文标题】:How do I find the name of a XAML element in C#? 【发布时间】:2021-12-20 06:50:38 【问题描述】:

我在这里有这段代码,它将检测 XAML 中的复选框是否已更改,因此还会检查该复选框的名称以查看它是否与“whatever”匹配。但是,我似乎无法完全理解这个属性,因为它是您声明自己的属性 (x:Name)。

checkBox.Namethrows this error,这使它更复杂,因为我不知道如何找到这个元素的x:Name

private void CB_Changed(object sender, CheckedChangedEventArgs e)
        
            CheckBox checkBox = sender as CheckBox;
            if (checkBox.Name == "whatever")
            
                  // Do something
            
        

如何做到这一点,但显然是以正确的方式?

【问题讨论】:

错误是什么? "CheckBox 不包含“名称”的定义" 如果您的编辑器支持它,请尝试将鼠标悬停在“CheckBox”上以在工具提示中查看它是什么类(例如 System.Windows.Controls.CheckBox)。 一个复选框肯定是has a Name property。试试var checkBox = sender as System.Windows.Controls.CheckBox; 看看是否可行。 我之前应该提到过,这是针对安卓应用的,所以同样的事情也适用吗? 【参考方案1】:

尝试使用AutomationId 属性。

【讨论】:

以上是关于如何在 C# 中找到 XAML 元素的名称?的主要内容,如果未能解决你的问题,请参考以下文章

如何获取存储在字符串变量中的XAML元素名称?

C#如何在没有 XAML 的情况下创建到父元素的(两种方式)数据绑定

WPF基础篇----命名空间

如何获取适用于 C# 的 Windows Compact 2013 的 Silverlight 或 XAML?

如何在 C# XAML WinRT 中使用字符串变量设置控件的属性?

如何在c#中使用具有相同名称但不同属性和结构的元素反序列化XML