我有一个用户控件WPF(MainControl - 在以下代码中未示出),其中包含另一个(在下面的代码称为MyControl)。
MainControl将它的DataContext设置为一个具有Project-property属性的对象。 当MainControl加载时,Project-property始终为空。
问题:
当MainControl负荷,我想用一种特殊的情节串连图板在MyControl褪色(只用这一个时间(这个“specialFadeInStoryboard”从0变为MyControl的不透明度属性为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>
感谢回答,但标签给我这个错误时,EnterActions是火灾: 出现InvalidOperationException:“specialFadeInStoryboard的名字不能在名称范围发现'System.Windows.Style'。 我甚至尝试过移动故事板,以便它是的一个孩子......但是这也不起作用:( –
kennethkryger
2010-04-15 06:45:41
通过创建af Style来解决它,使用Setter为“Template “。模板的值是一个ControlTemplate,所有故事板都在”ControlTemplate.Resources“部分中定义。 – kennethkryger 2010-05-21 12:56:16