基本上,我不了解这里的真正区别是:
TabItem的Microsoft代码使用:
<ContentPresenter ContentSource="Header" ... />
那么,什么时候可以使用
Content
属性代替(或补充使用)ContentSource
?
最佳答案
此属性仅在以下情况下使用
ContentPresenter在模板中。
当模板包含
具有ContentSource的ContentPresenter
设置为“ Abc”,“内容”
ContentTemplate,以及
ContentTemplateSelector的属性
ContentPresenter会自动
别名为Abc,AbcTemplate和
分别为AbcTemplateSelector。
从.NET Framework开始
版本3.5 Service Pack 1,设置
ContentSource设为“ Abc”也会导致
ContentStringFormat属性为
别名为AbcStringFormat。
这两个最有用的值
属性是“内容”和“标题”。
(MSDN)ContentSource
为了方便起见,显然一次设置了更多属性。
实际上,声明:
<ContentPresenter ContentSource="Header" />
执行以下初始化。
<ContentPresenter Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}" />
仅当模板控件上存在依赖项属性时,它才分别对每个属性执行此操作。
关于wpf - ContentPresenter.ContentSource与内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600221/