2010-07-09 34 views

Respuesta

12

x: La clave solo es válida dentro de un diccionario de recursos y se agrega a un diccionario, x: El nombre se usa localmente y representa una variable dentro de la clase.

8

x:Name se utiliza para elementos de la interfaz de nombres (por ejemplo, controles, paneles, etc), mientras que x:Key se utiliza para identificar los recursos (que pueden ser más o menos cualquier cosa) dentro de un ResourceDictionary.

Esto significa que no se puede hacer referencia a las cosas en un diccionario de recursos utilizando un valor x:Name:

<Grid> 
    <Grid.Resources> 
     <Style x:Name="StyleName" x:Key="StyleKey" /> 
    </Grid.Resources> 
    <Button Style="{StaticResource StyleName}" /> <!-- Will not work--> 
    <Button Style="{StaticResource StyleKey}" /> <!-- Will work --> 
</Grid> 

También se dará cuenta de que los elementos que no están dentro de un diccionario de recursos no pueden tener un atributo x:Key:

<TextBox x:Key="TextBoxKey" /> <!-- Will not compile --> 
1

Sí, utilizaría x: Key para asignar una clave a los recursos dentro de un ResourceDictionary, ya sea localmente en la sección de recursos para un elemento o un ResourceDictionay específico. Esta clave luego se usa para buscar el recurso, a través de {DynamicResource XXX} o {StaticResource XXX}.

x: El nombre se usa para asignar un nombre a un control en xaml. Esto se puede usar para acceder al elemento en el código detrás del archivo, usando la sintaxis habitual o usando un enlace ElementName dentro del archivo.

Cuestiones relacionadas