2011-09-27 24 views
25

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

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

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

Aviso del ContentControl. Plantilla Tag

o podría escribir esto:

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

Aviso del ContentControl. ContentTemplate Tag

La salida tiene el mismo aspecto y en el primer caso que utilice un ControlTemplate y en la otra un 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, ...).

Respuesta

18

La propiedad Template define la apariencia de un control y ContentTemplate define la plantilla del área Content de un control. Interesante punto de MSDN:

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

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

+1

'Template' tipo de propiedad es' ControlTemplate', no 'ContentControl' – romanoza

Cuestiones relacionadas