Триггеры оцениваются в порядке их появления в XAML, поэтому я думаю, что вам, скорее всего, нужно просто изменить их порядок, как показано ниже:
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="False">
<Setter TargetName="Over" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Normal" Property="Visibility" Value="Visible"/>
</Trigger>
<Trigger Property="IsMouseOver" Value="True">
<Setter TargetName="Over" Property="Visibility" Value="Visible"/>
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
</Trigger>
<Trigger Property="IsPressed" Value="True">
<Setter TargetName="Pressed" Property="Visibility" Value="Visible"/>
<Setter TargetName="Normal" Property="Visibility" Value="Hidden"/>
<Setter TargetName="Over" Property="Visibility" Value="Hidden"/>
</Trigger>
</ControlTemplate.Triggers>
Таким образом, настройки IsPressed
переопределятIsMouseOver
эквивалентов.