更改视觉状态,并根据依赖属性不使用过渡

|| 我有一个控制权,有时我想给状态转换设置动画,有时却不做。 目前,我有这样的事情:
<Grid>
    <Interactivity:Interaction.Behaviors>
        <ic:DataStateBehavior Binding=\"{Binding Direction}\" Value=\"Up\" TrueState=\"Up_Direction\" />
    </Interactivity:Interaction.Behaviors>    
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup x:Name=\"AnimatedStates\">
            <VisualStateGroup.Transitions>
                <VisualTransition x:Name=\"transition\" GeneratedDuration=\"0:0:1\">
                    <VisualTransition.GeneratedEasingFunction>
                        <ElasticEase .../>
                    </VisualTransition.GeneratedEasingFunction>
                </VisualTransition>
            </VisualStateGroup.Transitions>

            <VisualState x:Name=\"Up_Direction\" >
                <Storyboard>
                    <DoubleAnimation Duration=\"0\" To=\"0\" Storyboard.TargetProperty=\"(UIElement.RenderTransform).(RotateTransform.Angle)\" 
                        Storyboard.TargetName=\"pathArrow\" />
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>
    <Path x:Name=\"pathArrow\" ...>
        <Path.RenderTransform>
            <RotateTransform Angle=\"90\" />
        </Path.RenderTransform>
    </Path>
</Grid>
这很好用,但是我想拥有一个UseTransitions依赖项属性,该属性控制状态转换是否动画。 我已经尝试了一些操作,例如在UseTransitions属性更改的处理程序上将GeneratedDuration设置为0,但是似乎在状态更改后才被设置,因此无效。 我还尝试了使用DataTrigger进行GoToStateAction,但是它们似乎仅在更改时被触发,并且DataContext的初始值未正确设置状态。 我已经考虑过在DataStateBehaviour上使用ValueConverter来评估UseTransition属性并触发不同的状态,但这似乎是一个非常丑陋的解决方案。 任何人都有一个优雅的解决方案?     
已邀请:

要回复问题请先登录注册