背景:
我有一个 WPF UserControl(MainControl - 未在下面的代码中显示),其中包含另一个(在下面的代码中称为 MyControl)。
MainControl 将其 DataContext 设置为具有项目属性的对象。当 MainControl 加载时,项目属性始终为空。
问题:
当 MainControl 加载时,我想使用特殊的情节提要淡入 MyControl(仅使用一次(此“specialFadeInStoryboard”将 MyControl 的 Opacity-property 从 0 更改为 1)。
当 Project-property 设置为 null 以外的值时,我希望 MyControl 使用“fadeOutStoryboard”淡出(将 MyControl 的 Opacity-property 更改为 0),如果之后将其设置为 null,我想再次淡入这次使用“fadeInStoryboard”(将 MyControl 的 Opacity-property 更改为 1)。
但是,在添加“specialFadeInStoryboard”的代码后,MyControl 永远不会淡出......
我究竟做错了什么?
<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>