2011-09-27 37 views
25

Sự khác nhau giữa ContentControl.Template và ContentControl.ContentTemplate là gì? Và khi nào tôi sử dụng?Whats sự khác biệt giữa ContentControl.Template và ContentControl.ContentTemplate

Ví dụ tôi có thể viết trong một file XAML cho WPF:

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

Thông báo các ContentControl. Template Tag

hoặc tôi có thể viết này:

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

Thông báo các ContentControl. ContentTemplate Thẻ

Kết quả đầu ra trông giống nhau và trong trường hợp đầu tiên tôi sử dụng ControlTemplate và một hộp kiểm DataTemplate khác. Tuy nhiên, làm thế nào tôi nên đánh lừa nếu tôi phải sử dụng .Template hoặc .ContentTemplate? Và điều này có nghĩa gì (e. G. Trên DataBinding, Property Inheritance, ...).

Trả lời

18

Template thuộc tính xác định sự xuất hiện của chính Kiểm soát và ContentTemplate xác định mẫu của khu vực Content của điều khiển. Điểm thú vị từ MSDN:

Nếu điều khiển không có ControlTemplate, điều khiển sẽ không xuất hiện trong ứng dụng của bạn.

này trở nên rõ ràng hơn khi chúng ta hãy nhìn vào các kiểu dữ liệu của cả hai thuộc tính:

+1

Loại thuộc tính 'Mẫu' là' ControlTemplate', không phải 'ContentControl' – romanoza

Các vấn đề liên quan