У меня есть стиль по умолчанию для всех текстовых полей. Что-то вроде этого:Переопределение триггера из стиля, влияющего на управление внутри шаблона
<Style TargetType="{x:Type TextBox}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type TextBox}">
<Border x:Name="vaBorder" BorderThickness="1" CornerRadius="0" Padding="2,1,0,1"
BorderBrush="{TemplateBinding BorderBrush}">
<Grid>
<ScrollViewer x:Name="PART_ContentHost" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
</Grid>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsEnabled" Value="False">
<Setter TargetName="vaBorder" Property="Background" Value="{DynamicResource {x:Static Themes:ResourceKeys.DisabledControlBackground}}"/>
<Setter TargetName="PART_ContentHost" Property="Opacity" Value="0.7"/>
</Trigger>
<Trigger Property="IsReadOnly" Value="True">
<Setter TargetName="vaBorder" Property="Background" Value="{DynamicResource {x:Static Themes:ResourceKeys.DisabledControlBackground}}"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
Как вы можете видеть, что есть триггер, который изменяет фон управления vaBorder когда TextBox IsReadOnly свойство имеет значение True.
Я установил элемент управления TextBox на свою страницу, но только для этой конкретной страницы я хочу, чтобы фон этого элемента управления vaBorder внутри TextBox был другого цвета и сделал текст непрозрачным.
Возможно ли это сделать, просто переопределив триггеры стиля, или мне нужно в значительной степени создать новый стиль и переопределить весь шаблон с нуля?