WPF情节提要板的三态复选框

时间:2018-10-02 13:42:49

标签: wpf checkbox storyboard controltemplate threestate

我有一个WPF应用程序和三态CheckBox。我为复选框创建了一个自定义模板,并希望像滑动条一样对其进行动画处理(向左和向右移动滑动条)。 我创建了一个滑块并设置了触发器:

<ControlTemplate TargetType="{x:Type CheckBox}">
    <ControlTemplate.Triggers>
        <Trigger Property="IsChecked" Value="True">
            <Trigger.EnterActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchOn}" />
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchOff}" />
            </Trigger.ExitActions>
        </Trigger>
        <Trigger Property="IsChecked" Value="False">
            <Trigger.EnterActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchOff}" />
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchOn}" />
            </Trigger.ExitActions>
        </Trigger>
        <Trigger Property="IsChecked" Value="{x:Null}">
            <Trigger.EnterActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchMiddle}" />
            </Trigger.EnterActions>
            <Trigger.ExitActions>
                <BeginStoryboard Storyboard="{StaticResource SwitchOff}" />
            </Trigger.ExitActions>
        </Trigger>
    </ControlTemplate.Triggers>
</ControlTemplate>

应用于两种状态复选框的此样式在以下循环中的复选框切换时非常适用: 打开->关闭... ,依此类推。

但是,当我将其应用于三态复选框时,动画循环效果很好(我需要),只有一次: 打开->中间切换->关闭

然后,循环重复如下: 关闭->中间切换->关闭->关闭->中间切换...

我尝试了Enter操作和Exit操作的许多不同组合,但未成功。什么是创建令人期待的行为触发器的正确​​方法?谢谢!

0 个答案:

没有答案