导航抽屉保持打开状态

时间:2020-02-23 20:04:10

标签: c# wpf datatrigger

我工作的一个C#WPF程序和我有一个抽屉式导航时未选中该复选框,当复选框被选中应关闭和打开

这是导航抽屉中的屏幕截图

[1]: https://i.stack.imgur.com/EpOOn.png

我正在尝试使用DataTrigger来做到这一点。

这是XAML代码:

我的故事板:

<Window.Resources>
        <Storyboard x:Key="OpenMenu">
            <DoubleAnimation
                Storyboard.TargetProperty="(Width)"
                From="70"
                To="350"
                Duration="0:0:0.5" />
        </Storyboard>
        <Storyboard x:Key="CloseMenu">
            <DoubleAnimation
                Storyboard.TargetProperty="(Width)"
                From="350"
                To="70"
                Duration="0:0:0.5" />
        </Storyboard>
    </Window.Resources>

和DataTrigger:

<Grid.Style>
                <Style TargetType="Grid">
                    <Setter Property="Width" Value="350" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=CheckBox, Path=IsChecked}" Value="False">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard Storyboard="{StaticResource CloseMenu}" />
                            </DataTrigger.EnterActions>
                        </DataTrigger>
                        <DataTrigger Binding="{Binding ElementName=CheckBox, Path=IsChecked}" Value="True">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard Storyboard="{StaticResource OpenMenu}" />
                            </DataTrigger.EnterActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Grid.Style>

还有复选框

<CheckBox Name="CheckBox" />

问题是导航抽屉保持打开状态。 当我选中CheckBox时,它会快速关闭并再次打开。

有什么想法吗?

编辑:

这是BionicCode回答后的代码:

<Grid.Style>
                <Style TargetType="Grid">
                    <Setter Property="Width" Value="70" />
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding ElementName=CheckBox, Path=IsChecked}" Value="True">
                            <DataTrigger.EnterActions>
                                <BeginStoryboard Storyboard="{StaticResource OpenMenu}" />
                            </DataTrigger.EnterActions>
                            <DataTrigger.ExitActions>
                                <BeginStoryboard Storyboard="{StaticResource CloseMenu}" />
                            </DataTrigger.ExitActions>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </Grid.Style>

0 个答案:

没有答案