c# .net wpf xaml contentcontrol

c# - Cuál es la diferencia entre ContentControl.Template y ContentControl.ContentTemplate



.net wpf (1)

Template propiedad de Template define la apariencia de un control en sí mismo y ContentTemplate define la plantilla del área de Content de un control. Un punto interesante de MSDN:

Si un Control no tiene un ControlTemplate, el Control no aparecerá en su aplicación.

Esto se vuelve más claro cuando echamos un vistazo a los tipos de datos de ambas propiedades:

¿Cuál es la diferencia entre ContentControl.Template y ContentControl.ContentTemplate? ¿Y cuándo uso qué?

Por ejemplo, podría escribir en un archivo xaml para WPF:

<ContentControl> <ContentControl.Template> <ControlTemplate> <Label Content="This is from the Template"/> </ControlTemplate> </ContentControl.Template> </ContentControl>

Observe el ContentControl. Etiqueta de plantilla

o podría escribir esto:

<ContentControl> <ContentControl.ContentTemplate> <DataTemplate> <Label Content="This is From the ContentTemplate"/> </DataTemplate> </ContentControl.ContentTemplate> </ContentControl>

Observe el ContentControl. Etiqueta ContentTemplate

El resultado es el mismo y en el primer caso uso ControlTemplate y en el otro, DataTemplate. Sin embargo, ¿cómo debo diferir si tengo que usar .Template o .ContentTemplate? Y qué implicaciones tiene esto (por ejemplo, en DataBinding, Property Herencia, ...).