我有一个带边框控件的wpf应用程序,其可见性绑定到viewmodel上的属性。
控制按照我的预期显示和隐藏,但我想添加一些动画来使节目和隐藏视觉效果更加顺畅。 我正在思考控件宽度在0到250之间的动画 - 所以它给出了扩展/收缩的外观。
我对混合的经验很少,所以不确定这是否是正确的解决方法但是 - 我创建了一个故事板,在X上进行缩放转换,然后尝试添加触发器来对抗可见性用于启动故事板的控件。但是,我无法找到可添加到触发器的可见性事件。谁能指出我正确的方向?
答案 0 :(得分:1)
你可以像这样使用样式。但在这种情况下,您应该绑定到 IsEnabled 属性而不是可见性,因为如果可见性发生更改,则不支持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>
我希望,这很有帮助。
<强>更新强>
要收缩边框,您可以将ThicknessAnimation
用于以前的代码示例。
<Storyboard TargetProperty="BorderThickness">
<ThicknessAnimation From="1,1,1,1" To="0,0,0,0" Duration="0:0:0.5" />
</Storyboard>