mic*_*ael 13 wpf xaml contentpresenter controltemplate
基本上,我不明白这里的真正区别是什么:
TabItem的Microsoft代码使用:
<ContentPresenter ContentSource="Header" ... />
Run Code Online (Sandbox Code Playgroud)
那么,何时使用该Content属性而不是(或除此之外)ContentSource?
H.B*_*.B. 16
仅当ContentPresenter位于模板中时,才应使用此属性.当模板包含ContentSource设置为"Abc"的ContentPresenter时,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" />
Run Code Online (Sandbox Code Playgroud)
执行以下初始化.
<ContentPresenter Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}" />
Run Code Online (Sandbox Code Playgroud)
仅当模板化控件上存在依赖属性时,它才会分别为每个属性执行此操作.