Ответ 1
Это свойство следует использовать только тогда, когда ContentPresenter находится в шаблоне. Когда шаблон содержит ContentPresenter с ContentSource установлен на "Abc", Content, ContentTemplate и Свойства ContentTemplateSelector ContentPresenter автоматически aliased для Abc, AbcTemplate и AbcTemplateSelector, соответственно. Начиная с .NET Framework версия 3.5 с пакетом обновления 1, установка ContentSource для "Abc" также вызывает Свойство ContentStringFormat aliased для AbcStringFormat.
Два наиболее полезных значения для этого свойство "Содержимое" и "Заголовок".
(MSDN)
ContentSource
, по-видимому, устанавливает дополнительные свойства сразу для удобства.
Практически, декларация:
<ContentPresenter ContentSource="Header" />
Выполняет следующую инициализацию.
<ContentPresenter Content="{TemplateBinding Header}"
ContentTemplate="{TemplateBinding HeaderTemplate}"
ContentTemplateSelector="{TemplateBinding HeaderTemplateSelector}"
ContentStringFormat="{TemplateBinding HeaderStringFormat}" />
Он делает это для каждого свойства отдельно, только если свойство зависимостей существует в шаблоном.