ViewModelにIsDoneという変数があります。IsDoneが値を変更したときに新しいStoryboardをアタッチしたいと思います。読み込みプロセスのように見えます。ボタンをクリックして何かを待ってアニメーションを開始し、IsDoneを設定します。 StopAniを呼び出すのは正しいです。問題はborder3です。IsDoneがtrueの場合は表示されません。アイデアはありがとう、ありがとうございます。 ボタンテンプレート:DataTriggerと新しいストーリーボードを添付
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ToggleButton}">
<Grid>
<Canvas>
<Ellipse x:Name="border1" Width="100" Height="100"/>
<Ellipse x:Name="border2" Width="90" Height="90"/>
<Ellipse x:Name="border3" Width="50" Height="50"/>
</Canvas>
<ContentPresenter />
</Grid>
<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding IsDone}" Value="false">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource StartAni}"/>
</DataTrigger.EnterActions>
<DataTrigger Binding="{Binding IsDone}" Value="true">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource StopAni}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
StartAni:
<Storyboard x:Key="StartAni">
<DoubleAnimation
Storyboard.TargetName="border2"
Storyboard.TargetProperty="StrokeThickness" To="0" Duration="0:0:0.2"/>
</DoubleAnimation>
<ColorAnimation
Storyboard.TargetName="border2"
Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)"
To="Grey" Duration="0">
</ColorAnimation>
<DoubleAnimation
Storyboard.TargetName="border3"
Storyboard.TargetProperty="StrokeThickness"
From="0.0" To="5.0" Duration="0"/>
</Storyboard>
StopAni:
<Storyboard x:Key="StopAni">
<DoubleAnimation
Storyboard.TargetName="border2"
Storyboard.TargetProperty="StrokeThickness" To="5" Duration="0:0:2.5"/>
<ColorAnimation
Storyboard.TargetName="border2"
Storyboard.TargetProperty="(Ellipse.Stroke).(SolidColorBrush.Color)"
To="LightGreen" Duration="0"/>
<DoubleAnimation
Storyboard.TargetName="border3"
Storyboard.TargetProperty="StrokeThickness"
From="5.0" To="0.0" Duration="0:0:0.2"/>
</Storyboard>
のViewModel:
bool isDone;
public bool IsDone {
set {
isDone = value;
OnPropertyChanged("IsDone");
}
get {
return isDone;
}
}
:
完全なXAMLはこれをしたいと思います。ここで、DataTriggersを宣言した場所。 – AnjumSKhan
yes、buton Templateの3つの省略記号: .... @ AnjumSKhan –
Jandy
正しく質問を更新しましたplz – AnjumSKhan