plantillas - style x key wpf
¿Cuál es la diferencia entre x: Key, x: Name y x: UID en una DataTemplate en WPF? (2)
Intento crear pestañas dinámicas en WPF y estoy intentando escribir una plantilla de contenido que solo se aplicará a algunos elementos de pestañas. Quiero poder crear un identificador para la plantilla de contenido para poder hacer referencia a él en el código subyacente, y para poder aplicarlo de manera selectiva a solo algunas pestañas en un único TabControl. Sin embargo, estoy confundido acerca de estos tres identificadores xaml diferentes. ¿Cuál es la diferencia, y cuál es la mejor para mis propósitos?
El ''x:'' especifica el espacio de nombres, que en su caso probablemente sería " http://schemas.microsoft.com/winfx/2006/xaml " Verá el alias declarado en la parte superior de su archivo Window.Xaml. x: Clave, x: Nombre, etc. son todas directivas en ese espacio de nombres.
Por el contrario, el atributo ''Nombre'' (sin x) es una propiedad de dependencia declarada en la clase FrameworkElement.
x: Clave
Identifica de manera única los elementos que se crean y referencian en un diccionario definido por XAML. Agregar una x: valor de clave a un elemento de objeto XAML es la forma más común de identificar un recurso en un diccionario de recursos, por ejemplo, en un documento de referencia de WPF.
x: nombre
Identifica de forma única los elementos definidos por XAML en un namescope XAML. Los nombres de XAML y sus modelos de exclusividad se pueden aplicar a los objetos instanciados, cuando los marcos proporcionan API o implementan comportamientos que acceden al gráfico de objetos creado por XAML en tiempo de ejecución.
x: Uid
Proporciona un identificador único para los elementos de marcado. En muchos escenarios, este identificador único es utilizado por los procesos y herramientas de localización XAML.
Notas
Solo he visto x: Uid cuando una aplicación debe admitir diferentes idiomas con un diccionario de recursos.
Para los otros dos (x: Key y x: Name), una regla básica es usar x: Name para elementos de Framework y x: Key para estilos, plantillas, etc. Entonces, para su pregunta, si está nombrando una plantilla, usaría la directiva x: Key . Los controles declarados dentro de la plantilla usarían la directiva x: Name .
Se proporciona una lista completa de todas las directivas Xaml en el espacio de nombres Xaml
Si desea aplicar la plantilla a todas las pestañas de su página, puede usar x: Type , pero si desea aplicarla a algunas pestañas y no a todas las pestañas, puede usar x: Key .
En general, usará x: Key cuando quiera usarlo como StaticResource en su archivo xaml. Proporcionará x: Name a un control o plantilla cuando quiera referirlo a su código subyacente. Nunca he usado X: Uid, pero esto es lo que dice MSDN,
Use x: Uid para identificar un elemento de objeto en su XAML. Normalmente, este elemento de objeto es una instancia de una clase de control u otro elemento que se muestra en una interfaz de usuario. La relación entre la cadena que utiliza en x: Uid y las cadenas que utiliza en un archivo de recursos es que las cadenas de archivos de recursos son x: Uid seguido de un punto (.) Y luego el nombre de una propiedad específica del elemento eso está siendo localizado