В попытке еще больше сократить мой код на c #, я попытался обработать анимацию Гамбургер-меню на XAML.Я применил MultiDataTrigger с условием, которое принимает текущую ширину и нажатие кнопки от кнопки меню гамбургера.Он оживляет первую ширину 70 -> 150 и ширину 150 -> 70, но после этого он больше не работает.
<Grid x:Name="NavigationGrid" Grid.RowSpan="2" Background="Black">
<StackPanel Margin="0">
<Button x:Name="HamburgerMenuBtn" Style="{DynamicResource NavigationBtn_Style}"/>
</StackPanel>
<Grid.Style>
<Style TargetType="Grid">
<Setter Property="Width" Value="70"/>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=NavigationGrid,Path=ActualWidth}" Value="70"/>
<Condition Binding="{Binding ElementName=HamburgerMenuBtn,Path=IsPressed}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="70"
To="150"
Duration="0:0:0.5"
Storyboard.TargetProperty="Width"/>
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=NavigationGrid,Path=ActualWidth}" Value="150"/>
<Condition Binding="{Binding ElementName=HamburgerMenuBtn,Path=IsPressed}" Value="True"/>
</MultiDataTrigger.Conditions>
<MultiDataTrigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation
From="150"
To="70"
Duration="0:0:0.5"
Storyboard.TargetProperty="Width"/>
</Storyboard>
</BeginStoryboard>
</MultiDataTrigger.EnterActions>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
</Grid>