基本上,我不明白这里的真正区别是什么:
TabItem 的 Microsoft 代码使用:
<ContentPresenter ContentSource="Header" ... />
那么,什么时候会使用该Content属性来代替(或除此之外)ContentSource?
基本上,我不明白这里的真正区别是什么:
TabItem 的 Microsoft 代码使用:
<ContentPresenter ContentSource="Header" ... />
那么,什么时候会使用该Content属性来代替(或除此之外)ContentSource?
仅当 ContentPresenter 在模板中时才应使用此属性。当模板包含 ContentPresenter 且 ContentSource 设置为“Abc”时,ContentPresenter 的 Content、ContentTemplate 和 ContentTemplateSelector 属性将自动分别别名为 Abc、AbcTemplate 和 AbcTemplateSelector。从 .NET Framework 3.5 Service Pack 1 开始,将 ContentSource 设置为“Abc”还会导致 ContentStringFormat 属性别名为 AbcStringFormat。
此属性的两个最有用的值是“Content”和“Header”。
( MSDN )
ContentSource为了方便起见,显然一次设置了更多属性。
实际上,声明:
<ContentPresenter ContentSource="Header" />
执行以下初始化。
<ContentPresenter Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}" />
仅当依赖属性存在于模板化控件上时,它才会分别对每个属性执行此操作。