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,属性继承,......)。
答案 0 :(得分:19)
Template属性定义Control本身的外观,ContentTemplate定义Control的Content
区域的模板。来自MSDN的有趣观点:
如果Control没有ControlTemplate,则Control不会 出现在您的申请表中。
当我们查看两个属性的数据类型时,这变得更加清晰: