WPF 动画到动态值



我想偶尔显示一个用户控件。

当用户控件的可见性更改为可见时,它应该以中等速度缓和。

我基本上想出了如何做到这一点:

<UserControl.Resources>
<Style TargetType="{x:Type UserControl}" x:Key="MyStyleName">            
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>                                
<DoubleAnimation Storyboard.TargetProperty="Height" From="0.0" To="200.0" Duration="0:0:1" />
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>
</UserControl.Resources>

这工作正常。

在实际应用程序中,我不知道 Height 属性的确切值,因为 UserControl "托管"在网格中,行高设置为"自动"。

我尝试绑定到模板父级,但不起作用。绑定到相对源也不起作用。

请问谁能帮我?

谢谢!

作为替代方法,在控件的 RenderTransform 中对 ScaleTransform 进行动画处理:

<Style TargetType="UserControl">
<Setter Property="RenderTransformOrigin" Value="0.5,0.5"/>
<Setter Property="RenderTransform">
<Setter.Value>
<ScaleTransform ScaleY="0"/>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Trigger.EnterActions>
<BeginStoryboard>
<Storyboard>
<DoubleAnimation To="1" Duration="0:0:1" 
Storyboard.TargetProperty="RenderTransform.ScaleY"/>
</Storyboard>
</BeginStoryboard>
</Trigger.EnterActions>
</Trigger>
</Style.Triggers>
</Style>

相关内容

  • 没有找到相关文章

最新更新