Как сказал qntmfred, вы не можете сделать это напрямую. Однако если у вас есть элемент управления, который вы хотите настроить (что звучит так, как вы), то вы можете сделать это, добавив подходящие свойства настройки, такие как свойство CustomButtons (к которому каждый пользователь элемента управления может добавить свои собственные кнопки ) или свойство ExtensionContent (которое каждый пользователь элемента управления может установить для любого содержимого, которое он хочет - оставьте его пустым, добавьте один элемент управления или добавьте панель с таким количеством элементов, как они хотят). Ваш ControlTemplate не будет назначать семантику этим свойствам, а просто размещать их так, как они были им заданы. Например, предположим, что вы предоставили свойство ExtensionContent. Ваш ControlTemplate может представить это с помощью ContentPresenter:
<ContentPresenter ContentSource="ExtensionContent" />
И ваши пользователи могут положить в нее все, что захотят:
<s:StefansControl>
<s:StefansControl.ExtensionContent>
<StackPanel Orientation="Horizontal">
<TextBlock Text="I'm custom content" />
<Button Click="DoSomethingSurprising_Click">Click me</Button>
<Image Source="something.jpg" />
</StackPanel>
</s:StefansControl.ExtensionContent>
</s:StefansControl>
Другим возможным является предоставление свойств стиля, которые вы применяете к частям вашего элемента управления, чтобы пользователи могли их стилизовать (включая изменение шаблона этой части (только) элемента управления) без замены всего стиля / шаблон. Это своего рода идея «интерфейса к конкретному элементу», например предоставить свойство FooBoxStyle, которое применяется к TextBox "foo".
Короче говоря, идея состоит в том, чтобы встроить определенную меру "частичной замены" в базовый шаблон - будь то с помощью контента, стилей, шаблонов или их комбинации. WPF не предоставляет общего понятия «частичная замена», но вы можете указать собственное понятие частичной замены при условии, что вы можете предсказать, какой тип частичной замены может потребоваться.