Obecnie mamUmieszczenie osłony na wyzwalaczu zdarzeń WPF. czy to możliwe?
<ContentControl
Grid.Column="2" Grid.Row="3"
>
<ContentControl.Triggers>
<EventTrigger RoutedEvent="UIElement.MouseEnter">
<BeginStoryboard
Storyboard="{StaticResource ShakeStatorMinorRadiusEdit}"/>
</EventTrigger>
</ContentControl.Triggers>
... <snip> ...
</ContentControl>
i
<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>
Chodzi o to, że kiedy wchodzi mysz żółtą podÊwietlonego na lewym żółto podświetlone sterowanie po prawej zadrży. Kontrolka po prawej stronie ma x: Name = StatorMinorRadiusEdit
Jak dotąd tak dobrze działa powyższe.
Teraz chcę dodać kolejną komplikację. Chcę tylko, aby animacja została uruchomiona, jeśli wartość w moim modelu widoku RotorLobes == 1. W urojonym świecie zrobiłbym to.
<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>
W realnym świecie nie mam pojęcia, jak to osiągnąć.
Niestety odpowiedź od Marka Greena nie działa, chociaż była naprawdę dobra i podobna. Prawdopodobnie nie jest dobrym pomysłem, aby oznaczyć go wyżej. – bradgonesurfing
Mam nadzieję, że moja zredagowana odpowiedź przybliży Cię trochę. –
Tak. Jestem prawie pewien, że omija problem, który zidentyfikowałem. XAML to naprawdę świnia. Na przykład niemożliwe jest zdefiniowanie tablicy opowieści jako zasobu statycznego, a następnie zastosowanie jej do elementu zdalnego za pomocą TargetName w rozsądny sposób. – bradgonesurfing