C# 为什么只工作一个数据触发器?

C# 为什么只工作一个数据触发器?,c#,wpf,xaml,C#,Wpf,Xaml,只有第二个DataTriggerCloseMenu起作用。如果我将secondCloseMenu与firstOpenMenu数据触发器交换,则OpenMenu触发器将工作,但Close将不工作。我需要两个触发器才能工作。将单个属性绑定到两个单独的DataTriggers中,如果多个DataTriggers只处理一个依赖性属性,则只有最后一个可用 建议将两个DataTrigger合并为一个 <ControlTemplate.Triggers> <DataTrigger B

只有第二个DataTriggerCloseMenu起作用。如果我将secondCloseMenu与firstOpenMenu数据触发器交换,则OpenMenu触发器将工作,但Close将不工作。我需要两个触发器才能工作。

将单个属性绑定到两个单独的DataTriggers中,如果多个DataTriggers只处理一个依赖性属性,则只有最后一个可用

建议将两个DataTrigger合并为一个

<ControlTemplate.Triggers>
    <DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="True">
        <DataTrigger.EnterActions>
            <BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_OpenMenu}"/>
        </DataTrigger.EnterActions>
        <DataTrigger.ExitActions>
            <BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_CloseMenu}"/>
        </DataTrigger.ExitActions>
    </DataTrigger>
</ControlTemplate.Triggers>

然后,当值为true时,Enteraction将调用,当值为false时,ExitActions将调用。

在ExitAction中尝试StopStoryboard,如下所示:这应该可以回答您的问题:
<ControlTemplate.Triggers>
    <DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="True">
        <DataTrigger.EnterActions>
            <BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_OpenMenu}"/>
        </DataTrigger.EnterActions>
        <DataTrigger.ExitActions>
            <BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_CloseMenu}"/>
        </DataTrigger.ExitActions>
    </DataTrigger>
</ControlTemplate.Triggers>