FrameworkElement.Name 属性
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
获取或设置元素的标识名称。 该名称提供引用,以便代码隐藏(如事件处理程序代码)可以在 XAML 处理器处理期间构造标记元素后引用它。
public:
property System::String ^ Name { System::String ^ get(); void set(System::String ^ value); };
[System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)]
public string Name { get; set; }
[<System.Windows.Localizability(System.Windows.LocalizationCategory.NeverLocalize)>]
member this.Name : string with get, set
Public Property Name As String
属性值
元素的名称。 默认值为一个空字符串。
实现
- 属性
示例
以下示例在代码中设置Name属性,然后通过调用RegisterName将名称注册到新创建NameScope的名称中。 此处所述的技术是使用情节提要进行动画处理的要求,因为情节提要需要按 Name该情节提要设定目标,并且不能由对象引用作为目标。
//
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle);
'
' Create a Rectangle
'
Dim myRectangle As New Rectangle()
myRectangle.Width = 200
myRectangle.Height = 200
myRectangle.Name = "myRectangle"
Me.RegisterName(myRectangle.Name, myRectangle)
注解
此属性的最常见用法是在标记中将 XAML 元素名称指定为属性。
此属性实质上提供 WPF 框架级便利属性来设置 XAML x:Name 指令。
名称在名称范围中必须是唯一的。 有关详细信息,请参阅 WPF XAML Namescopes。
Name如果在代码中创建元素并不常见,则获取该元素。 如果代码中已有适当的引用,则只需调用元素引用的方法和属性,并且通常不需要该 Name引用。 例外情况是, Name 如果字符串具有一些重载的含义,例如,如果在 UI 中显示该名称很有用。 Name如果未建议从标记设置原始Name内容,并且加载 XAML 后更改属性不会更改原始对象引用,则从代码隐藏设置。 仅当在分析期间显式创建基础名称范围时,才会创建对象引用。 必须专门调用 RegisterName 才能对已加载元素的属性进行有效的更改 Name 。
一个值得注意的 Name 案例是,在为情节提要运行的元素注册名称时,请务必注意这些名称,以便可以在运行时引用它们。 在注册名称之前,可能还需要实例化和分配 NameScope 实例。 请参阅“示例”部分或 情节提要概述。
从代码设置 Name 具有有限的应用程序,但获取 Name 元素更常见。 一个特定方案是,如果应用程序支持导航模型,其中页面重新加载到应用程序中,并且运行时代码不一定为该页定义代码隐藏。 实用工具方法 FindName可从任意 FrameworkElement元素中找到任何元素,方法是在该元素 Name 的逻辑树中根据需要递归搜索。 或者,可以使用 FindLogicalNode 静态方法 LogicalTreeHelper,该方法也采用 Name 字符串作为参数。
通常使用根元素 (Window, Page 例如) 实现接口 INameScope。 此接口的实现应在其范围内强制实施名称明确。 定义此接口的根元素还定义所有相关 API 的名称范围行为边界。
该 Name 属性还充当其他进程的标识符。 例如,WPF 自动化模型将用作 Name 客户端和提供程序的 AutomationId。
用于 Name 的字符串值具有一些限制,由 XAML 规范定义的基础 x:Name 指令 施加。 最值得注意的是,必须 Name 以字母或下划线字符开头 (_) ,并且必须仅包含字母、数字或下划线。 有关详细信息,请参阅 WPF XAML Namescopes。
Name 是无法对 (IsAnimationProhibited true
进行动画处理的极少数依赖项属性之一,位于元数据) 中,因为名称本身对于定位动画至关重要。 数据绑定 Name 在技术上是可能的,但这是一种极其罕见的方案,因为数据绑定 Name 不能为属性的主要用途提供服务:为代码隐藏提供标识符连接点。
依赖项属性信息
标识符字段 | NameProperty |
元数据属性设置为 true |
IsAnimationProhibited |