WPF TemplateBinding для прикрепленных свойств

Я хотел бы понять этот вид использования TemplateBinding:

Background="{TemplateBinding Panel.Background}" 

Это используемая строка внутри определения ControlTemplate, переопределяющая внешний вид расширителя. (Template ControlTemplate TargetType=Expander)

Поскольку у класса расширения нет свойства Panel, я хотел бы понять, откуда возьмется Panel.Background, когда будет применен шаблон элемента управления. Я думал о прикрепленном свойстве, но в XAML я не могу написать что-то вроде:

<Expander Panel.Background ="..." />

Следовательно, класс расширителя, похоже, не имеет прикрепленного свойства Panel.Background.


person sthiers    schedule 19.09.2011    source источник
comment
Привет, TemplateBinding разработан как ярлык для привязки с Source={RelativeSource Mode=TemplatedParent}, по крайней мере, так говорят. У меня есть .NET4 @work, и я могу установить фон Expender непосредственно в XAML следующим образом: ‹Expander Width=40 Height=60 Background=Green/› и это работает. Это что-то еще, чего вы пытаетесь достичь?   -  person    schedule 19.09.2011
comment
Небольшое дополнение — иногда они используют прикрепленное свойство для удобства (с ним не связано никакого фактического поведения) — поскольку вам не нужно объявлять свое собственное, Background — это одно из них.   -  person    schedule 19.09.2011
comment
Обратитесь к этому превосходному ответу H.B. ... stackoverflow.com/ вопросы/7141831/   -  person WPF-it    schedule 20.09.2011
comment
Спасибо AngelWPF, это отвечает на мой вопрос. (но я не могу настроить его на ответ!). Тем не менее, мне все еще интересно, что дает добавление владельца к свойству зависимостей... но это уже другой вопрос :)   -  person sthiers    schedule 20.09.2011