Я пытаюсь написать повторно используемый шаблон для WPF ItemContainerStyle.Как передать свойства WPF Style
Этот шаблон изменяет способ отображения элемента TabControl. Этот шаблон предназначен для использования в нескольких местах приложения.
В каждом месте оно используется. Я хочу иметь возможность передавать ему различные параметры. Например: для изменения отступа от границы Пункт:
<Style x:Key="TabItemStyle1" TargetType="{x:Type TabItem}">
<Setter Property="Margin" Value="10,0"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TabItem}">
<Grid SnapsToDevicePixels="true">
<Border x:Name="Bd" Width="80"
Background="Gray"
Margin="{TemplateBinding Margin}">
<ContentPresenter x:Name="Content"
ContentSource="Header" />
</Border>
</Grid>
<ControlTemplate.Triggers>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
...
<TabControl ItemContainerStyle="{DynamicResource TabItemStyle1}">
В том месте, где используется этот стиль, я хотел бы написать что-то вроде:
ItemContainerStyle="{DynamicResource TabItemStyle1 Margin='5,0'}"
или
<TabControl Margin="78,51,167,90" ItemContainerStyle="{DynamicResource TabItemStyle1}"
ItemContainerStyle.Margin="5,0">
Мотивация заключается в использовании этого шаблона в разных местах с разными полями. Есть ли способ сделать это?
Спасибо
спасибо Thomas, ваш первый ответ ясный и элегантный. Однако я хотел, чтобы это можно было сделать без написания дополнительного кода на C#. Мой ответ выше делает это, но опять же - писать небольшой статический класс не имеет большого значения, и он может быть еще более изящным. Спасибо. –
Кстати, в моем ответе (выше) используются статические свойства. –