小编can*_*ork的帖子

VisualStateManager和生成的转换

就在我认为我理解的时候VisualStateManager,有些东西证明我错了.

我正在使用WPF 4,我试图简单地将鼠标放大,然后在鼠标离开时将其缩小.我想我只是在a中定义每个状态VisualStateGroup然后VisualTransition用a 指定a GeneratedDuration:

<Border x:Name="PART_Root" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" RenderTransformOrigin="0.5,0.5">
    <VisualStateManager.VisualStateGroups>
        <VisualStateGroup Name="CommonStates">
            <VisualStateGroup.Transitions>
                <VisualTransition GeneratedDuration="0:0:1"/>
            </VisualStateGroup.Transitions>

            <VisualState Name="Normal"/>

            <VisualState Name="MouseOver">
                <Storyboard>
                    <DoubleAnimation Storyboard.TargetName="scaleTransform" Storyboard.TargetProperty="ScaleX" To="1.5" Duration="0"/>
                    <DoubleAnimation Storyboard.TargetName="scaleTransform" Storyboard.TargetProperty="ScaleY" To="1.5" Duration="0"/>
                </Storyboard>
            </VisualState>
        </VisualStateGroup>
    </VisualStateManager.VisualStateGroups>

    <Border.RenderTransform>
        <ScaleTransform x:Name="scaleTransform" ScaleX="1" ScaleY="1"/>
    </Border.RenderTransform>

    <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
</Border>
Run Code Online (Sandbox Code Playgroud)

由于我有一个全能VisualTransitionGeneratedDuration,我期待VSM生成中间动画.也就是说,鼠标悬停在控件上应该在ScaleTransform1秒内将属性设置为1到1.5.与mousing相同.相反,延迟1秒,然后ScaleTransform属性立即捕捉到1.5或回到1.

如果我手动指定转换如下,那么我得到所需的行为:

<VisualStateGroup.Transitions>
    <VisualTransition From="Normal" To="MouseOver">
        <Storyboard>
            <DoubleAnimation Storyboard.TargetName="scaleTransform" Storyboard.TargetProperty="ScaleX" To="1.5" …
Run Code Online (Sandbox Code Playgroud)

wpf animation visualstatemanager transitions vsm

9
推荐指数
1
解决办法
7404
查看次数

标签 统计

animation ×1

transitions ×1

visualstatemanager ×1

vsm ×1

wpf ×1