2009-07-06 14 views

Respuesta

19

Nada. Dado que el tipo de propiedad es Type, el analizador XAML sabe que debe intentar convertir lo que proporcione a un Type. En otros escenarios, el tipo de propiedad puede ser menos específico (por ejemplo, Object), y allí es donde necesita la extensión de marcado, de lo contrario, el analizador XAML simplemente interpretará su valor como String.

15

Lo siento por pinchar un hilo tan viejo, pero siento que lo vale. Recientemente he encontrado una situación que muestra que x:Typees diferente de TypeName-as-String.

Desde mi experiencia -

x:Type considera el nombre seguro o la versión del ensamblado pero no TypeName-as-String.

he explicado en mi escenario y otros detalles en mi blog aquí -

Importance of specifying AncestorType with x:Type in RelativeSourceBinding

Aparte de esto, también hay diferencia en la forma de WPF infiere el tipo. Para x:TypeTypeExtension se usa, mientras que para TypeName-as-StringFrameworkElementFactory se utiliza.

Según MSDN - x:Type Markup Extension

tipo que apoyan typename-como-Cadena

WPF es compatible con las técnicas que permiten especificar el valor de algunos inmuebles del tipo Tipo sin necesidad de un marcado x:Type extensión uso. En su lugar, puede especificar el valor como una cadena que nombra el tipo . Ejemplos de esto son ControlTemplate.TargetType y Style.TargetType. El soporte para este comportamiento no se proporciona a través del , ya sea que escriba convertidores o extensiones de marcado. En cambio, este es un comportamiento de diferimiento implementado a través del FrameworkElementFactory.

Cuestiones relacionadas