Поделиться через


FrameworkElement.Name Свойство

Определение

Возвращает или задает идентификатор имени элемента. Имя предоставляет ссылку, чтобы код программной части, например код обработчика событий, может ссылаться на элемент разметки после его создания во время обработки обработчиком 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 свойство в коде, а затем регистрирует имя в только что созданном NameScope путем вызова RegisterName. Здесь показана методика для анимации с раскадровки, так как раскадровки требуют целевого объекта 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.

Name Получение, если вы создаете элементы в коде не часто. Если у вас уже есть соответствующая ссылка в коде, вы можете просто вызвать методы и свойства в ссылке на элемент и, как правило, не потребуется Name. Исключение из этого заключается в том, что Name строка имеет некоторое перегруженное значение, например, если это полезно для отображения этого имени в пользовательском интерфейсе. Если исходный NameName код был задан из разметки, также не рекомендуется, а изменение свойства после загрузки XAML не изменит исходную ссылку на объект. Ссылки на объекты создаются только при явном создании базовых областей имен во время синтаксического анализа. Необходимо специально вызвать RegisterName эффективное изменение свойства Name уже загруженного элемента.

Один из важных случаев, когда параметр Name из кода важен при регистрации имен для элементов, на которые будут выполняться раскадровки, чтобы они могли ссылаться во время выполнения. Прежде чем зарегистрировать имя, может потребоваться создать экземпляр и назначить NameScope экземпляр. См. раздел "Пример" или "Обзор раскадровки".

Параметр Name из кода имеет ограниченные приложения, но получение элемента Name более распространено. Один из конкретных сценариев заключается в том, что приложение поддерживает модель навигации, в которой страницы перезагружается в приложение, а код времени выполнения не обязательно определяется кодом для этой страницы. Метод FindNameслужебной программы, доступный из любого FrameworkElementэлемента, может найти любой элемент Name в логическом дереве для этого элемента, выполняя поиск дерева рекурсивно по мере необходимости. Или можно использовать статический FindLogicalNode метод LogicalTreeHelper, который также принимает Name строку в качестве аргумента.

Обычно используются корневые элементы (Windowнапример, Page например), реализующие интерфейс INameScope. Предполагается, что реализации этого интерфейса будут применяться, чтобы имена были однозначно определены в их области. Корневые элементы, определяющие этот интерфейс, также определяют границы поведения области имен для всех связанных API.

Свойство Name также служит идентификатором для других процессов. Например, модель автоматизации WPF будет использоваться Name как AutomationId для клиентов и поставщиков.

Строковые значения, используемые для Name некоторых ограничений, применяются базовой директивой x:Name , определенной спецификацией XAML. В первую очередь, Name должно начинаться с буквы или символа подчеркивания (_) и содержать только буквы, цифры или символы подчеркивания. Дополнительные сведения см. в области имен WPF XAML.

Name является одним из немногих свойств зависимостей, которые не могут быть анимированы (IsAnimationProhibited в true метаданных), так как само имя является жизненно важным для целевой анимации. Привязка Name данных технически возможна, но является чрезвычайно редким сценарием, так как привязка Name к данным не может служить основной целевой целью свойства: предоставить точку подключения идентификатора для кода программной части.

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

Элемент Ценность
Поле идентификатора NameProperty
Свойства метаданных, равные свойству true IsAnimationProhibited

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