Contexte:Conflit lorsque deux storyboards définissent la propriété Opacity?
J'ai un WPF UserControl (MainControl - non représentés dans le code ci-dessous) qui contient un autre (appelé MyControl dans le code ci-dessous).
MainControl a défini DataContext sur un objet qui a une propriété Project. Lorsque MainControl est chargé, la propriété Project est toujours NULL.
Le problème:
Lorsque les charges MainControl, je veux disparaître dans le MyControl à l'aide d'un story-board spécial (seulement utilisé cette fois-ci (ce « specialFadeInStoryboard » change Opacité-propriété de MyControl de 0 à 1) Lorsque la propriété Project est définie sur une valeur autre que null, je souhaite que MyControl disparaisse en utilisant le "fadeOutStoryboard" (change la propriété Opacity de MyControl à 0) et si elle est définie sur null par la suite, je veux pour le fondre à nouveau cette fois en utilisant le "fadeInStoryboard" (change la propriété Opacité-de MyControl à 1)
Cependant, après avoir ajouté le code pour "specialFadeInStoryboard", le MyControl n'est jamais effacé ...
Qu'est-ce que je fais de mal?
<local:MyControl Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Opacity, Converter={StaticResource opacityToVisibilityConverter}, Mode=OneWay}">
<local:MyControl.Style>
<Style>
<Style.Triggers>
<EventTrigger RoutedEvent="FrameworkElement.Loaded">
<BeginStoryboard Storyboard="{StaticResource specialFadeInStoryboard}"/>
</EventTrigger>
<DataTrigger Binding="{Binding Project, Converter={StaticResource nullToBooleanConverter}, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/>
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource fadeInStoryboard}"/>
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
</local:MyControl.Style>
</local:MyControl>
Merci pour la réponse, mais la balise me donne cette erreur lorsque les EnterActions est incendies: InvalidOperationException: nom « specialFadeInStoryboard » ne peut être trouvé dans le périmètre de nom de 'System.Windows.Style'. J'ai même essayé de déplacer le storyboard, donc c'est un enfant du ... Mais cela ne fonctionne pas non plus :( –
kennethkryger
Résolu en créant un style, avec un Setter pour le "Template" La valeur du Template est un ControlTemplate, où tous les storyboards sont définis dans la section "ControlTemplate.Resources" ... – kennethkryger