Немного про шаблоны ContentControl-ов
27 апреля 2010 - 20:07
Почему-то большинство людей, которым доводилось делать ControlTemplate-ы для ContentControl-ов никогда не используют возможность ограничить тип этого самого контента. Например если у нас есть кнопка, про которую мы точно знаем, что там будет только картинка, то почему не задать её шаблон следующим образом:
И тогда в xaml-е можно ее будет задавать следующим образом:
Вместо традиционного:
Получается короче и удобнее в использовании. Естественно, использование данной возможности накладывает ограничение на использование таких шаблонов в незапланированных целях, поэтому допустим применять такую возможность в библиотеках компонентов будет не лучшей идей, но для использования внутри конкретного законченного проекта будет вполне удачно для упрощения и уменьшения написанного xaml-а.
<ControlTemplate TargetType="Button"> <Border> <Image Source="{TemplateBinding Content}"/> </Border> <ControlTemplate>
<Button>Images/Image1.png</Button>
<Button><Image Source="Images/Image1.png"/></Button>