8

私は現在持っています

<ContentControl
   Grid.Column="2" Grid.Row="3" 
   >
   <ContentControl.Triggers>
       <EventTrigger RoutedEvent="UIElement.MouseEnter">
           <BeginStoryboard 
               Storyboard="{StaticResource ShakeStatorMinorRadiusEdit}"/>
       </EventTrigger>
   </ContentControl.Triggers>

   ... <snip> ...

</ContentControl>

    <Grid.Resources>
         <Storyboard x:Key="ShakeStatorMinorRadiusEdit">
            <DoubleAnimationUsingKeyFrames
                        Storyboard.TargetName="StatorMinorRadiusEdit"
                        Storyboard.TargetProperty="RenderTransform.X" 
                        RepeatBehavior="5x"
                        >
                <EasingDoubleKeyFrame KeyTime="0:0:0.05" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.1" Value="3"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.15" Value="0"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.20" Value="-3"/>
                <EasingDoubleKeyFrame KeyTime="0:0:0.25" Value="0"/>
            </DoubleAnimationUsingKeyFrames>
        </Storyboard>
     </Grid.Resources>

ここに画像の説明を入力

これは、左側の黄色で強調表示されたコントロールにマウスが入ると、右側の黄色で強調表示されたコントロールが揺れるという考え方です。右側のコントロールには x:Name=StatorMinorRadiusEditがあります。これまでのところ、上記の動作は良好です。

ここで、別の複雑さを追加したいと思います。ビュー モデル RotorLobes == 1 の値が 1 の場合にのみ、アニメーションをトリガーしたいです。架空の世界ではそうします。

<ContentControl
   Grid.Column="2" Grid.Row="3" 
   >
   <ContentControl.Triggers>
       <EventTrigger RoutedEvent="UIElement.MouseEnter">

           <If Property="{Binding RotorLobes}" Value="1"/>

           <BeginStoryboard 
               Storyboard="{StaticResource ShakeStatorMinorRadiusEdit}"/>
       </EventTrigger>
   </ContentControl.Triggers>

   ... <snip> ...

</ContentControl>

現実の世界では、これを達成する方法がわかりません。

4

1 に答える 1