最近、スタイルとコントロール テンプレートについて読みました。それが言うように、コントロール テンプレートはコントロール デザイン全体を担当します。しかし、たとえば、これを書いたときに、マウスが上にあるとき、またはコントロールにフォーカスがあるときなど、デフォルトのコントロールテンプレートの特定の部分のみを変更したい:
<Style x:Key="StyleTextBox" TargetType="TextBox">
<Setter Property="Margin" Value="5, 0"/>
<Setter Property="VerticalContentAlignment" Value="Center"/>
<Setter Property="HorizontalContentAlignment" Value="Left"/>
<Setter Property="BorderBrush" Value="Black"/>
<Setter Property="Background" Value="Transparent"/>
<Setter Property="SelectionBrush" Value="#CCFBE6D9"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="BorderBrush" Value="Black" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
..テンプレート全体がオーバーライドされました...そして、ちょっとクールではありません...
では、デフォルト スタイル全体をオーバーライドせずに、isMouseOver ビジュアル スタイルのみを変更するにはどうすればよいでしょうか。