<ControlTemplate.Triggers>
<DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_OpenMenu}"/>
</DataTrigger.EnterActions>
</DataTrigger>
<DataTrigger Binding="{Binding HamburgerMenu_IsOpen, Mode=OneWay}" Value="False">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource HamburgerMenuRectangles_CloseMenu}"/>
</DataTrigger.EnterActions>
</DataTrigger>
</ControlTemplate.Triggers>
仅第二个DataTrigger(CloseMenu)有效。如果我将第二个(CloseMenu)与第一个(OpenMenu)DataTriggers交换,则OpenMenu触发器将起作用,但关闭将不起作用。我需要两个触发器才能工作。
答案 0 :(得分:1)
您将一个属性绑定到两个分开的DataTrigger
中,如果多个DataTrigger
仅处理一个依赖项属性,则只有最后一个起作用。
建议将两个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>
然后,您的EnterActions
将在值为true时调用,而ExitActions
将在值为false时调用。