Подтвердить что ты не робот

В чем разница между ContentControl.Template и ContentControl.ContentTemplate

Какая разница между ContentControl.Template и ContentControl.ContentTemplate? И когда я использую, что?

Например, я мог писать в файле xaml для WPF:

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

Обратите внимание на ContentControl. Шаблон Тег

или я мог бы написать это:

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

Обратите внимание на ContentControl. Тег

Результат выглядит одинаково, и в первом случае я использую ControlTemplate, а в другом - DataTemplate. Однако, как я должен обманывать, если мне нужно использовать .Template или .ContentTemplate? И какие последствия имеет это (например, в DataBinding, Property Inheritance,...).

4b9b3361

Ответ 1

Template свойство определяет появление самого элемента управления и ContentTemplate определяет шаблон области Content элемента управления. Интересный пункт из MSDN:

Если элемент управления не имеет ControlTemplate, элемент управления не будет появятся в вашем приложении.

Это становится более понятным, когда мы рассматриваем типы данных обоих свойств: