¿Cuándo debo usar FrameworkPropertyMetadata o UIPropertyMetadata sobre PropertyMetadata simple?

81

Al mirar las propiedades y el comportamiento de la muestra adjunta, he visto una mezcolanza de usos de FrameworkPropertyMetadata, UIPropertyMetadatay PropertyMetadata. Dado que todos forman una jerarquía de herencia, ¿cómo elijo cuál usar?

Roger Lipscombe
fuente

Respuestas:

80

Estas clases informan sobre algunos aspectos del comportamiento de una propiedad de dependencia.

Consulte las diferentes clases para conocer las opciones que ofrecen.

Por ejemplo,

si solo desea respaldar una propiedad por dp y proporcionar un valor predeterminado, use PropertyMetadata,

si desea especificar el comportamiento de la animación, use UIPropertyMetadata,

pero si alguna propiedad afecta el nivel del marco de wpf, por ejemplo, diseño de elementos, diseño principal o enlace de datos, use FrameworkPropertyMetadata.

Puede consultar los detalles en msdn http://msdn.microsoft.com/en-us/library/ms751554.aspx

gp.
fuente
2
La verdadera pregunta es, ¿por qué el fragmento de propdp usa UIPropertyMetadata, especialmente porque no hay subclases de PropertyMetadata en Silverlight? Me vuelve loco.
Grank
6
Eso es porque los mismos fragmentos se comparten entre WPF y Silverlight. Puede probar diferentes fragmentos de silverlight desde este enlace: blog.nerdplusart.com/archives/silverlight-code-snippets
gp.
2
MSDN dice "En general, debe usar FrameworkPropertyMetadata, particularmente si su propiedad tiene alguna interacción con el sistema de propiedad y las funciones de WPF como el diseño y el enlace de datos". - (Especificación de metadatos) msdn.microsoft.com/en-us/library/ms751554.aspx
Wayne Bloss
¿Para qué tipo de enlace de datos se debe utilizar FrameworkPropertyMetadata? Simplemente quiero una propiedad que esté vinculada a IsEnabled de un control.
Monstieur