Как предложено @P.Manthe
Установите Visibility="Collapsed"
по умолчанию для всех холстов и установите Property="Visibility" Value="Visible"
для холста, который должен быть видимым
<ControlTemplate>
<Viewbox Width="30" Height="24" Stretch="Uniform" HorizontalAlignment="Right" VerticalAlignment="Top">
<Canvas Background="{TemplateBinding Background}" Width="30.6667" Height="26.6667">
<Canvas x:Name="deviceProgramIdle"Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceProgramStepA" Width="30.6667" Height="26.6667" Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceProgramStepB" Width="30.6667" Height="26.6667" Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceProgramStepC" Width="30.6667" Height="26.6667" Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceOperation1" Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceOperation2" Height="24" Width="30" Visibility="Collapsed">
...
</Canvas>
<Canvas x:Name="deviceOperation3" Width="30.6667" Height="26.6667" Visibility="Collapsed">
...
</Canvas>
</Canvas>
</Viewbox>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding DeviceViewModel.IsOperation1Active, Mode=OneWay}" Value="true">
<Setter TargetName="deviceOperation1" Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding DeviceViewModel.IsOperation2Active, Mode=OneWay}" Value="true">
<Setter TargetName="deviceOperation2" Property="Visibility" Value="Visible"/>
</DataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding DeviceViewModel.IsOperation1Active, Mode=OneWay}" Value="true"/>
<Condition Binding="{Binding DeviceViewModel.IsOperation2Active, Mode=OneWay}" Value="false"/>
<Condition Binding="{Binding DeviceViewModel.IsOperation3Active, Mode=OneWay}" Value="false"/>
</MultiDataTrigger.Conditions>
<Setter TargetName="deviceOperation3" Property="Visibility" Value="Visible"/>
</MultiDataTrigger>
<DataTrigger Binding="{Binding AnimationIndex, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type devic:DeviceProgram}}, Mode=OneWay}" Value="1">
<Setter TargetName="deviceProgramStepA" Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding AnimationIndex, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type devic:DeviceProgram}}, Mode=OneWay}" Value="2">
<Setter TargetName="deviceProgramStepB" Property="Visibility" Value="Visible"/>
</DataTrigger>
<DataTrigger Binding="{Binding AnimationIndex, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type devic:DeviceProgram}}, Mode=OneWay}" Value="3">
<Setter TargetName="deviceProgramStepC" Property="Visibility" Value="Visible"/>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>