内容控制之间的区别是什么?模板和ContentControl.ContentTemplate
本文关键字:ContentControl ContentTemplate 之间 区别 是什么 内容控制 | 更新日期: 2023-09-27 18:09:40
模板和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 ?这意味着什么(例如,在数据绑定,属性继承,…)。
Template属性定义控件本身的外观,而ContentTemplate定义控件的Content
区域的模板。来自MSDN的有趣观点:
如果控件没有ControlTemplate,则该控件将没有出现在应用程序中。
当我们看一下这两个属性的数据类型时,这就更清楚了:
- 模板属性类型为ControlTemplate
- ContentTemplate属性类型是DataTemplate,你可以在运行时使用ContentControl切换它。ContentTemplateSelector