WPF раскадровка для флажка с тремя состояниями - PullRequest
0 голосов
/ 02 октября 2018

У меня есть приложение 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>

Этот стиль, примененный к флажку с двумя состояниями, отлично работает при переключении флажка в таком цикле: включить -> выключить ... и т. Д.

Но когда я применяю его к флажку с тремя состояниями, цикл анимации работает хорошо (что мне нужно) только один раз: включить -> переключить середину ->выключить

И после этого цикл повторяется так: выключить -> переключить среднее -> выключить -> выключить -> переключить среднее ...

Я пробовал много разных комбинаций действий входа и выхода, но безуспешно.Как правильно создать триггеры ожидаемого поведения?Спасибо!

...