FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name FrameworkElement.Name Property

Определение

Возвращает или задает имя, обозначающее элемент.Gets or sets the identifying name of the element. Имя предоставляет ссылку, чтобы код программной части, например код обработчика событий, мог ссылаться на элемент разметки после создания этого элемента в ходе обработки процессором XAMLXAML.The name provides a reference so that code-behind, such as event handler code, can refer to a markup element after it is constructed during processing by a XAMLXAML processor.

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; }
member this.Name : string with get, set
Public Property Name As String

Значение свойства

Имя элемента.The name of the element. Значение по умолчанию - пустая строка.The default is an empty string.

Реализации

Примеры

В следующем примере задается Name свойства в коде, а затем регистрирует имя в только что созданный NameScope путем вызова RegisterName.The following example sets the Name property in code, and then registers the name into the newly created NameScope by calling RegisterName. Показанный здесь прием является обязательным для анимации с помощью раскадровок, так как раскадровки требуют указания цели с Name, а не может быть нацелена на ссылку на объект.The technique illustrated here is a requirement for animating with storyboards, because storyboards require targeting by the Name, and cannot be targeted by object reference.

//  
// 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)

Комментарии

Наиболее распространенный случай использования этого свойства является указание XAMLXAML имя элемента, как атрибут в разметке.The most common usage of this property is to specify a XAMLXAML element name as an attribute in markup.

По существу, это свойство предоставляет свойство удобства уровня платформы WPF, чтобы установить XAMLXAML директива x: Name.This property essentially provides a WPF framework-level convenience property to set the XAMLXAML x:Name Directive.

Имена должны быть уникальными в пределах области видимости имен.Names must be unique within a namescope. Дополнительные сведения см. в разделе области видимости имен XAML WPF.For more information, see WPF XAML Namescopes.

Начало Name при создании элементов в коде не часто.Getting a Name if you are creating elements in code is not common. Если вы уже соответствующую ссылку в коде, можно просто вызвать методы и свойства в элементе ссылки и не будет обычно необходимость Name.If you have the appropriate reference in code already, you can just call methods and properties on the element reference and will not generally need the Name. Исключение — если Name строка имеет несколько перегруженных значение, например если необходимо отобразить это имя в ИПUI.An exception to this is if the Name string has some overloaded meaning, for instance if it is useful to display that name in ИПUI. Установка Name из кода если исходный Name была настроена из разметки также не рекомендуется использовать и изменения свойства после загрузки XAMLXAML ссылка на исходный объект не изменится.Setting a Name from code-behind if the original Name was set from markup is also not recommended, and changing the property after loading the XAMLXAML will not change the original object reference. Ссылки на объекты создаются только в том случае, когда основной области видимости имен явно создаются во время синтаксического анализа.The object references are created only when the underlying namescopes are explicitly created during parsing. Необходимо явно вызывать RegisterName вносить изменений для Name свойства элемента уже загружен.You must specifically call RegisterName to make an effective change to the Name property of an already loaded element.

Один заметных случае там, где параметр Name из кода важна при регистрации имен для элементов, которые раскадровки будет выполняться, чтобы на них можно ссылаться во время выполнения.One notable case where setting Name from code is important is when registering names for elements that storyboards will run against, so that they can be referenced at run time. Перед регистрацией имени, может также потребоваться создания экземпляров и присваивания NameScope экземпляра.Before you can register a name, might also need to instantiate and assign a NameScope instance. См. в разделе "Пример" или Общие сведения о раскадровках.See the Example section, or Storyboards Overview.

Установка Name из кода имеет ограниченную приложения, но Получение элемента с Name чаще.Setting Name from code has limited applications, but getting an element by Name is more common. Один из сценариев является, если приложение поддерживает модель навигации, где перезагрузкой страниц в приложение, и код времени выполнения не обязательно кода программной части, определенным для этой страницы.One particular scenario is if your application supports a navigation model where pages reload into the application, and the run time code is not necessarily code-behind defined for that page. Служебный метод FindName, который доступен из любого FrameworkElement, можно найти любой элемент, Name в логическом дереве для этого элемента, поиск в дереве рекурсивно, при необходимости.The utility method FindName, which is available from any FrameworkElement, can find any element by Name in the logical tree for that element, searching the tree recursively as necessary. Или можно использовать FindLogicalNode статический метод LogicalTreeHelper, который также принимает Name строку в качестве аргумента.Or you can use the FindLogicalNode static method of LogicalTreeHelper, which also takes a Name string as an argument.

Как правило, используется корневых элементов (Window, Page для примера) реализовать интерфейс INameScope.Typically used root elements (Window, Page for example) implement the interface INameScope. Реализации этого интерфейса ожидается обеспечение однозначности имен в их области.Implementations of this interface are expected to enforce that names be unambiguous within their scope. Корневые элементы, которые определяют этот интерфейс также определить поведение границы области видимости имен для всех связанных API - интерфейсыAPIs.The root elements that define this interface also define the namescope behavior boundaries for all the related API - интерфейсыAPIs.

Name Свойства также служит в качестве идентификатора для других процессов.The Name property also serves as an identifier for other processes. Например WPFWPF будет использовать модель автоматизации Name как AutomationId для клиентов и поставщиков.For instance, the WPFWPF automation model will use Name as the AutomationId for clients and providers.

Строковые значения, используемые для Name имеют некоторые ограничения, как налагаемые базовой директива x: Name определяется XAMLXAML спецификации.The string values used for Name have some restrictions, as imposed by the underlying x:Name Directive defined by the XAMLXAML specification. Прежде всего Name должно начинаться с буквы или символа подчеркивания () и должно содержать только буквы, цифры или символы подчеркивания.Most notably, a Name must start with a letter or the underscore character (), and must contain only letters, digits, or underscores. Дополнительные сведения см. в разделе области видимости имен XAML WPF.For more information, see WPF XAML Namescopes.

Name является одним из немногих свойства зависимости, которые не могут анимироваться (IsAnimationProhibited является true в метаданных), так как само имя критически важен для нацеливания анимации.Name is one of the very few dependency properties that cannot be animated (IsAnimationProhibited is true in metadata), because the name itself is vital for targeting an animation. Привязка данных Name технически возможно, но встречается крайне редко, так как привязкой к данным Name не может служить главной цель свойство: для предоставления идентификатор точки подключения для кода.Data binding a Name is technically possible, but is an extremely uncommon scenario because a data-bound Name cannot serve the main intended purpose of the property: to provide an identifier connection point for code-behind.

Сведения о свойстве зависимостейDependency Property Information

Поле идентификатораIdentifier field NameProperty
Значение свойства метаданных trueMetadata properties set to true IsAnimationProhibited

Применяется к