首页 文章

可见性更改时打开/关闭动画

提问于
浏览
0

我有一个带边框控件的wpf应用程序,其可见性绑定到viewmodel上的属性 .

控件显示和隐藏,如我所料,但我想添加一些动画,使显示和隐藏视觉更平滑 . 我正在考虑将控制器的宽度设置为0到250之间的动画 - 因此它给出了扩展/收缩的外观 .

我对混合的经验很少,所以不确定这是否是正确的方法,但是 - 我创建了一个故事板,对X进行了比例转换,然后尝试添加触发器来控制控件的可见性故事板..但是,我找不到可见事件添加到触发器 . 谁能指出我正确的方向?

1 回答

  • 1

    您可以使用样式作为边框 . 但在这种情况下,您应该绑定到 IsEnabled 属性而不是 Visibility ,因为如果可见性发生更改,则opacitiy动画将无效 .

    <Style x:Key="myBorder" TargetType="Border">
        <Style.Triggers>
            <Trigger Property="IsEnabled" Value="False">
                <Trigger.EnterActions>
                    <BeginStoryboard>
                        <Storyboard TargetProperty="Opacity">
                            <DoubleAnimation From="1" To="0" Duration="0:0:0.5" />
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.EnterActions>
                <Trigger.ExitActions>
                    <BeginStoryboard>
                        <Storyboard TargetProperty="Opacity">
                            <DoubleAnimation From="0" To="1" Duration="0:0:0.5" />
                        </Storyboard>
                    </BeginStoryboard>
                </Trigger.ExitActions>
            </Trigger>
        </Style.Triggers>
    </Style>
    

    我希望这是有帮助的 .

    Update

    要缩小边框,可以使用 ThicknessAnimation 作为以前的代码示例 .

    <Storyboard TargetProperty="BorderThickness">
        <ThicknessAnimation From="1,1,1,1" To="0,0,0,0" Duration="0:0:0.5" />
    </Storyboard>
    

相关问题