Wpf 两个故事板设置不透明度属性时发生冲突?
背景: 我有一个WPF用户控件(MainControl-未在下面的代码中显示),其中包含另一个(在下面的代码中称为MyControl) MainControl将其DataContext设置为具有项目属性的对象。 加载MainControl时,项目属性始终为空 问题: 加载MainControl时,我希望使用一个特殊的情节提要在MyControl中淡入淡出(只使用了一次(这个“specialFadeInStoryboard”将MyControl的不透明度属性从0更改为1) 当项目属性设置为null以外的值时,我希望MyControl使用“fadeOutStoryboard”(将MyControl的不透明度属性更改为0)淡出,如果之后设置为null,我希望这次使用“fadeInStoryboard”(将MyControl的不透明度属性更改为1)再次淡入 然而,在为“specialFadeInStoryboard”添加代码之后,MyControl永远不会消失 我做错了什么Wpf 两个故事板设置不透明度属性时发生冲突?,wpf,triggers,properties,opacity,storyboard,Wpf,Triggers,Properties,Opacity,Storyboard,背景: 我有一个WPF用户控件(MainControl-未在下面的代码中显示),其中包含另一个(在下面的代码中称为MyControl) MainControl将其DataContext设置为具有项目属性的对象。 加载MainControl时,项目属性始终为空 问题: 加载MainControl时,我希望使用一个特殊的情节提要在MyControl中淡入淡出(只使用了一次(这个“specialFadeInStoryboard”将MyControl的不透明度属性从0更改为1) 当项目属性设置为null
<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>
在其他淡入淡出的故事板开始运行之前,您可能需要停止
specialFadeInStoryboard
。您可以通过以下方式完成此操作:
<DataTrigger.EnterActions>
<StopStoryboard BeginStoryboardName="specialFadeInStoryboard"/>
<BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/>
</DataTrigger.EnterActions>
在其他淡入淡出的故事板开始运行之前,您可能需要停止
specialFadeInStoryboard
。您可以通过以下方式完成此操作:
<DataTrigger.EnterActions>
<StopStoryboard BeginStoryboardName="specialFadeInStoryboard"/>
<BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/>
</DataTrigger.EnterActions>
感谢您的回复,但是当Entreaction被激发时,标签会给我这个错误:InvalidOperationException:“specialFadeInStoryboard”名称在“System.Windows.Style”的名称范围内找不到。我甚至尝试过移动情节提要,使其成为…的子项,但这也不起作用:(通过创建af样式和“模板”的Setter解决了这个问题。模板的值是ControlTemplate,其中所有情节提要都在“ControlTemplate.Resources”中定义)第节…感谢您的回复,但当EnterActions为fires:InvalidOperationException时,标记给我此错误:“specialFadeInStoryboard”名称在“System.Windows.Style”的名称范围内找不到。我甚至尝试移动情节提要,使其成为…的子项,但这也不起作用:(通过创建af样式解决了这个问题,为“模板”设置了一个Setter。模板的值是ControlTemplate,其中所有故事板都在“ControlTemplate.Resources”部分中定义。。。