Почему этот VisualStateManager запускает анимацию только один раз?

Я пытаюсь создать ControlTemplate для элемента управления WPF Expander, но я наткнулся на контрольно-пропускной пункт, пытаясь анимировать расширенные и сложенные состояния.

Когда приложение изначально запускается, моя анимация для расширенного состояния срабатывает один раз, но после этого не более.

Я не уверен, что здесь происходит, но вот как выглядит мой ControlTemplate:

    <ControlTemplate TargetType="Expander" x:Key="RightExpander">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Name="ContentColumn" Width="0" />
            </Grid.ColumnDefinitions>
            <VisualStateManager.VisualStateGroups>
                <VisualStateGroup x:Name="ExpansionStates">
                    <VisualState x:Name="Expanded">
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="Content" Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" To="-50" From="0"
                                 Duration="0:0:0.3" />
                        </Storyboard>
                    </VisualState>
                    <VisualState x:Name="Collasped">
                        <Storyboard>
                            <DoubleAnimation Storyboard.TargetName="Content" 
Storyboard.TargetProperty="(RenderTransform).(TranslateTransform.X)" 
                                To="50" From="0" Duration="0:0:0.3" />
                        </Storyboard>
                    </VisualState>
                </VisualStateGroup>
            </VisualStateManager.VisualStateGroups>
            <Border Grid.Row="0" BorderThickness="1" Panel.ZIndex="1" >
                <Grid>
                    <ToggleButton IsChecked="{Binding IsExpanded, Mode=TwoWay,
                          RelativeSource={RelativeSource 
                          TemplatedParent}}"></ToggleButton>
                    <ContentPresenter ContentSource="Header" 
                          RecognizesAccessKey="True" 
                          IsHitTestVisible="False" />
                </Grid>
            </Border>
            <Border Name="Content" Grid.Column="1" BorderThickness="0,1,1,1" 
                CornerRadius="0,5,5,0" Background="Pink" RenderTransformOrigin="0,0">
                <Border.RenderTransform>
                    <TranslateTransform X="0" Y="0" />
                </Border.RenderTransform>
                <ContentPresenter Margin="4" />
            </Border>
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="IsExpanded" Value="True">
                <Setter TargetName="ContentColumn" Property="Width" Value="{Binding
                    ElementName=Content, Path=DesiredSize.Width}" />
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

(У меня есть некоторые поддельные значения только для тестирования.) Что я делаю не так?

1 ответ

Решение

Я предполагаю, что орфографическая ошибка Collapsed (Collaped)

Может быть, VSM не находит раскадровку из-за орфографической ошибки

Другие вопросы по тегам