Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/322.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 多个DataTriggers-故事板被覆盖_C#_Wpf_Silverlight_Storyboard_Datatrigger - Fatal编程技术网

C# 多个DataTriggers-故事板被覆盖

C# 多个DataTriggers-故事板被覆盖,c#,wpf,silverlight,storyboard,datatrigger,C#,Wpf,Silverlight,Storyboard,Datatrigger,我有两个绑定到属性(Side)的DataTriggers,但只能启动一个故事板(最后一个DataTriggers中的一个) 为什么? 我觉得最后一个故事板凌驾于第一个之上 我建议在另一个脚本运行之前停止脚本: <Border x:Name="layout" Background="Transparent" BorderBrush="#BAC8CE" BorderThickness="1" CornerRadius="5"> <Border.Style>

我有两个绑定到属性(Side)的DataTriggers,但只能启动一个故事板(最后一个DataTriggers中的一个)

为什么?

我觉得最后一个故事板凌驾于第一个之上


我建议在另一个脚本运行之前停止脚本:

<Border x:Name="layout" Background="Transparent" BorderBrush="#BAC8CE" BorderThickness="1" CornerRadius="5">
    <Border.Style>
        <Style TargetType="{x:Type Border}">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Side}" Value="Up">
                    <DataTrigger.EnterActions>
                        <StopStoryboard BeginStoryboardName="BeginStoryboardTwo" />
                        <BeginStoryboard x:Name="BeginStoryboardOne">
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                                Duration="00:00:01"
                                                From="Transparent"
                                                To="Green"/>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                                Duration="00:00:00.5" 
                                                From="Green"
                                                To="Transparent"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
                <DataTrigger Binding="{Binding Side}" Value="Down">
                    <DataTrigger.EnterActions>
                        <StopStoryboard BeginStoryboardName="BeginStoryboardOne" />
                        <BeginStoryboard x:Name="BeginStoryboardTwo" >
                            <Storyboard>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)" 
                                                Duration="00:00:01" 
                                                From="Transparent"
                                                To="Red"/>
                                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                                Duration="00:00:00.5" 
                                                From="Red"
                                                To="Transparent"/>
                            </Storyboard>
                        </BeginStoryboard>
                    </DataTrigger.EnterActions>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
    <TextBlock Text="Hello World!" />
</Border>

尝试以下解决方案,将第二个datatrigger enter操作置于第一个datatrigger exit操作

<Border x:Name="layout"
        Grid.Row="1"
        Background="Transparent"
        BorderBrush="#BAC8CE"
        BorderThickness="1"
        CornerRadius="5">
  <Border.Style>
    <Style TargetType="{x:Type Border}">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Side, ElementName=uc, Mode=OneWay}"
                      Value="Up">
          <DataTrigger.EnterActions>
            <BeginStoryboard>
              <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                Duration="00:00:05"
                                From="Transparent"
                                To="Green" />
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                Duration="00:00:00.5"
                                From="Green"
                                To="Transparent" />
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.EnterActions>
          <DataTrigger.ExitActions>
            <BeginStoryboard>
              <Storyboard>
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                Duration="00:00:05"
                                From="Transparent"
                                To="Red" />
                <ColorAnimation Storyboard.TargetProperty="(Background).(SolidColorBrush.Color)"
                                Duration="00:00:00.5"
                                From="Red"
                                To="Transparent" />
              </Storyboard>
            </BeginStoryboard>
          </DataTrigger.ExitActions>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Border.Style>
</Border>


希望这有帮助

你是对的。我的故事板从未停止过。因此,另一个故事板没有视觉效果。感谢阅读本帖之前,我尝试使用“RemoveStoryboard”,但效果不如StopStoryboard。谢谢