Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original

FrameworkElement.Name (Propiedad)

Obtiene o establece el nombre de identificación del elemento. El nombre proporciona una referencia para que el código subyacente, por ejemplo el código de controlador de eventos, pueda hacer referencia a un elemento de marcado después de construirlo durante su procesamiento por XAML.

Espacio de nombres:  System.Windows
Ensamblado:  PresentationFramework (en PresentationFramework.dll)
XMLNS para XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

[LocalizabilityAttribute(LocalizationCategory.NeverLocalize)]
public string Name { get; set; }
<object Name="string" .../>

Valor de propiedad

Tipo: System.String
Nombre del elemento. El valor predeterminado es una cadena vacía.

Implementaciones

IFrameworkInputElement.Name

Campo de identificador

NameProperty

Propiedades de metadatos establecidas en true.

IsAnimationProhibited

El uso más común de esta propiedad es especificar un nombre de elemento XAML como un atributo en el marcado.

Esta propiedad proporciona esencialmente una propiedad útil del marco WPF para establecer el x:Name (Directiva) de XAML.

Los nombres deben ser únicos dentro de ámbito de nombres. Para obtener más información, vea Ámbitos de nombres XAML de WPF.

Obtener Name cuando los elementos se crean en el código no es común. Si ya tiene la referencia adecuada en el código, puede llamar simplemente a métodos y propiedades en la referencia de elemento y, generalmente, no necesitará la propiedad Name. Una excepción a esto es si la cadena Name tiene algún significado sobrecargado, por ejemplo si es útil mostrar el nombre en la UI. Tampoco se recomienda establecer Name desde el código subyacente si la propiedad Name original se estableció desde el marcado, ya que al cambiar la propiedad después de cargar XAML, no se cambiará la referencia al objeto original. Sólo se crean referencias a objetos cuando los ámbitos de nombre subyacentes se crean explícitamente durante el análisis. Debe llamar específicamente a RegisterName para realizar un cambio efectivo en la propiedad Name de un elemento ya cargado.

Un caso notable en el que es importante establecer Name desde el código es al registrar los nombres para los elementos contra los que se ejecutarán los guiones gráficos, para que se pueda hacer referencia a ellos en tiempo de ejecución. Antes de poder registrar un nombre, también podría necesitar crear una instancia de NameScope y asignarla. Vea la sección Ejemplo o Información general sobre objetos Storyboard.

Establecer Name desde el código tiene aplicaciones limitadas, pero obtener un elemento por Name es más común. Un escenario determinado es si la aplicación admite un modelo de navegación en el que las se vuelven a recargar en la aplicación y el código de tiempo de ejecución no es necesariamente el código subyacente definido para esa página. El método de utilidad FindName, que está disponible en FrameworkElement, puede buscar cualquier elemento mediante la propiedad Name en el árbol lógico de ese elemento y puede buscar de forma recursiva en el árbol si es necesario. O bien, puede usar el método estático FindLogicalNode de LogicalTreeHelper, que también toma una cadena Name como argumento.

Los elementos raíz normalmente utilizados (Window, Page, por ejemplo) implementan la interfaz INameScope. Se espera que las implementaciones de esta interfaz exijan que los nombres sean inequívocos en su ámbito. Los elementos raíz que definen esta interfaz también definen los límites de comportamiento del ámbito de nombres para toda la APIs relacionada.

La propiedad Name también actúa como identificador para otros procesos. Por ejemplo, el modelo de automatización de WPF usa Name como AutomationId para clientes y proveedores.

Los valores de cadena utilizados para Name tienen algunas restricciones, como la impuesta por el x:Name (Directiva) subyacente definido por la especificación XAML. Notablemente, Name se debe iniciar con una letra o el carácter de subrayado (_) y sólo debe contener letras, dígitos o subrayado. Para obtener más información, vea Ámbitos de nombres XAML de WPF.

Name es una de las pocas propiedades de dependencia que no se pueden animar (IsAnimationProhibited es true en los metadatos), porque el propio nombre es vital para dirigir una animación. El enlace de datos de Name es técnicamente posible, pero es un escenario sumamente raro porque una propiedad Name enlazada a datos no puede servir para el propósito principal de la propiedad: proporcionar un punto de conexión del identificador para el código subyacente.

El ejemplo siguiente establece la propiedad Name en el código y, a continuación, registra el nombre en el objeto NameScope recientemente creado mediante una llamada a RegisterName. La técnica mostrada aquí es un requisito para animar con guiones gráficos, porque los guiones gráficos requieren que Name los dirija y no se pueden dirigir mediante referencias a objetos.


//  
// Create a Rectangle
//
Rectangle myRectangle = new Rectangle();
myRectangle.Width = 200;
myRectangle.Height = 200;
myRectangle.Name = "myRectangle";
this.RegisterName(myRectangle.Name, myRectangle); 


.NET Framework

Compatible con: 4, 3.5, 3.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft