Примеры шаблонов элементов управления
37WPF --- Шаблоны и пользовательские элементы управления WPF --- Примеры шаблонов элементов управления
Как теперь известно, создание нового шаблона для стандартного элемента управления может потребовать кропотливой работы. Причина в том, что все требования шаблона элемента управления не всегда очевидны. Например, типичная полоса прокрутки ScrollBar требует комбинирования двух объектов RepeatButton и Track. Другие шаблоны элементов управления нуждаются в специфических именах PART_. В случае специального окна нужно будет позаботиться о декоративном слое, потому что этого требуют некоторые элементы управления.
Хотя все эти детали можно изучить, просматривая шаблон элемента, который у него есть по умолчанию, все же такие шаблоны зачастую усложнены и включают детали, которые не важны, а также привязки, которые все равно не понадобятся.
К счастью, есть более простой способ: проект-пример ControlTemplateExamples (ранее известный как под названием "Simple Styles" — простые стили).
Примеры шаблонов элементов управления включает простые шаблоны для всех стандартных элементов управления WPF, что предоставляет отличную начальную точку для проектирования любого специального элемента управления. В отличие от шаблонов элементов управления по умолчанию, примеры шаблонов используют стандартные цвета, выполняют всю работу декларативно (без классов Chrome) и обходятся без дополнительных частей, таких как привязки шаблонов для редко используемых свойств.
Целью этих примеров шаблонов является предоставление разработчикам практичной начальной точки, которой они могут воспользоваться для проектирования собственных графически расширенных шаблонов элементов управления. На рисунке показана приблизительно половина примеров из этого комплекта:
Комплект примеров SimpleStyles входит в состав .NET Framework SDK. Он доступен для непосредственной загрузки по адресу http://code.msdn.microsoft.com/wpfsamples#controlcustomization.
Комплект SimpleStyles — один из "тайных сокровищ" WPF. Он предоставляет шаблоны, которые легче понять и расширить, чем шаблоны элементов управления по умолчанию. Если нужно расширить обычный элемент управления, обеспечив ему новую внешность, то начинать нужно именно с этого проекта.