C# 如何仅在XAML中制作汉堡包菜单转换动画

C# 如何仅在XAML中制作汉堡包菜单转换动画,c#,wpf,xaml,animation,hamburger-menu,C#,Wpf,Xaml,Animation,Hamburger Menu,我只想在XAML中创建汉堡包菜单转换动画。 我只找到了关于如何使用代码隐藏实现这一点的教程和示例。 但这是我想不惜一切代价避免的事情 这是动画的外观: XAML: 是否只使用XAML就可以获得相同的结果。 我不想为这个动画后面的任何代码 我知道如何为动画本身创建每个故事板。 但同一个按钮必须执行两个不同的故事板, 取决于菜单的状态?这里是一个使用切换按钮的示例。由于ToggleButton内置了选中的/未选中的事件,因此可以使用EventTrigger中的事件来运行故事板 <Toggl

我只想在XAML中创建汉堡包菜单转换动画。 我只找到了关于如何使用代码隐藏实现这一点的教程和示例。 但这是我想不惜一切代价避免的事情

这是动画的外观:

XAML:

是否只使用XAML就可以获得相同的结果。 我不想为这个动画后面的任何代码

我知道如何为动画本身创建每个故事板。 但同一个按钮必须执行两个不同的故事板,
取决于菜单的状态?

这里是一个使用
切换按钮的示例。由于
ToggleButton
内置了
选中的
/
未选中的
事件,因此可以使用
EventTrigger
中的事件来运行故事板

<ToggleButton ... >
    <!-- Your menu icon XAML/rectangles go here -->
    <ToggleButton.Triggers>
        <EventTrigger RoutedEvent="ToggleButton.Checked">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource OpenMenu}" />
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="ToggleButton.Unchecked">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource CloseMenu}" />
            </EventTrigger.Actions>
        </EventTrigger>
    </ToggleButton.Triggers>
</ToggleButton>

什么是“汉堡菜单过渡动画”?你能在你的问题中加入动画吗?
    private void ButtonMenu_Click(object sender, RoutedEventArgs e)
    {
        if(StateClosed)
        {
            Storyboard sb = this.FindResource("OpenMenu") as Storyboard;
            sb.Begin();
        }
        else
        {
            Storyboard sb = this.FindResource("CloseMenu") as Storyboard;
            sb.Begin();
        }

        StateClosed = !StateClosed;
    }
<ToggleButton ... >
    <!-- Your menu icon XAML/rectangles go here -->
    <ToggleButton.Triggers>
        <EventTrigger RoutedEvent="ToggleButton.Checked">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource OpenMenu}" />
            </EventTrigger.Actions>
        </EventTrigger>
        <EventTrigger RoutedEvent="ToggleButton.Unchecked">
            <EventTrigger.Actions>
                <BeginStoryboard Storyboard="{StaticResource CloseMenu}" />
            </EventTrigger.Actions>
        </EventTrigger>
    </ToggleButton.Triggers>
</ToggleButton>