Если вы положите Storyboards
внутрь VisualStateManager
, вы можете использовать метод GoToState
:
VisualStateManager.GoToState(this, "Storyboard1", useTransitions);
Ваш XAML станет примерно таким:
<VisualStateManager.VisualStateGroups>
<VisualStateGroup Name="MyStates">
<VisualState Name="Storyboard1">
<Storyboard>
<ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="border">
<EasingColorKeyFrame KeyTime="0" Value="Red"/>
<EasingColorKeyFrame KeyTime="0:0:0.5" Value="#FF00FFED"/>
</ColorAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
....
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Обратите внимание, что имя переместилось с Storyboard
на VisualState
.
Тогда ваш код выглядит примерно так:
if (Counter == 1)
{
VisualStateManager.GoToState(this, "Storyboard1", useTransitions);
}
if (Counter == 2)
{
VisualStateManager.GoToState(this, "Storyboard2", useTransitions);
}
(хотя это из памяти, поэтому могут быть синтаксические ошибки)