2010-04-14 78 views
1

背景:两个故事板设置不透明属性时冲突吗?

我有一个用户控件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> 

回答

1

在其他衰落故事板开始运行之前,您可能需要停止specialFadeInStoryboard。你可以做到这一点是这样的:

<DataTrigger.EnterActions> 
    <StopStoryboard BeginStoryboardName="specialFadeInStoryboard"/> 
    <BeginStoryboard Storyboard="{StaticResource fadeOutStoryboard}"/> 
</DataTrigger.EnterActions> 
+0

感谢回答,但标签给我这个错误时,EnterActions是火灾: 出现InvalidOperationException:“specialFadeInStoryboard的名字不能在名称范围发现'System.Windows.Style'。 我甚至尝试过移动故事板,以便它是的一个孩子......但是这也不起作用:( – kennethkryger 2010-04-15 06:45:41

+0

通过创建af Style来解决它,使用Setter为“Template “。模板的值是一个ControlTemplate,所有故事板都在”ControlTemplate.Resources“部分中定义。 – kennethkryger 2010-05-21 12:56:16