什么是ContentControl.Template和ContentControl.ContentTemplate之间的区别

时间:2011-09-27 10:28:29

标签: c# .net wpf xaml contentcontrol

ContentControl.Template和ContentControl.ContentTemplate有什么区别? 我什么时候使用哪个?

例如,我可以在WPF的xaml文件中写入:

<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。 ContentTemplate 标记

输出看起来相同,在第一种情况下我使用ControlTemplate,而在另一种情况下使用DataTemplate。但是,如果我必须使用.Template或.ContentTemplate,我应该怎么做?这具有什么影响(例如,关于DataBinding,属性继承,......)。

1 个答案:

答案 0 :(得分:19)

Template属性定义Control本身的外观,ContentTemplate定义Control的Content区域的模板。来自MSDN的有趣观点:

  

如果Control没有ControlTemplate,则Control不会   出现在您的申请表中。

当我们查看两个属性的数据类型时,这变得更加清晰:

相关问题