试图以动画的高度,但得到错误的高度为NaN [英] Trying to animate height but getting error that height is NaN
问题描述
在试图创建一个动画,动态地调整高度。我发现此信息一>,帮助,但是当我尝试使用它,我得到一个错误:System.Windows.Media.Animation.DoubleAnimation'不能使用的'南的默认目标值
如果我指定的高度,我得到这个错误。
风格:
<风格X:键=bdrSlideIn
的TargetType ={X:边框类型}>
< Style.Resources>
<情节提要X:键=storyBoardIn>
< DoubleAnimation是的BeginTime =00:00:00
从=0
持续时间=00:00:00.65
Storyboard.TargetName ={X:空}
Storyboard.TargetProperty =(FrameworkElement.Height)
DecelerationRatio =1/>
< /故事板> <情节提要X:键=storyBoardOut>
< DoubleAnimation是的BeginTime =00:00:00
为=0
持续时间=00:00:00.65
Storyboard.TargetName ={X:空}
Storyboard.TargetProperty =(FrameworkElement.Height)
AccelerationRatio =1/>
< /故事板>
< /Style.Resources> < Style.Triggers>
< DataTrigger绑定={结合SearchExecuted}
值=真>
< DataTrigger.EnterActions>
< BeginStoryboard故事板={StaticResource的storyBoardIn}
NAME =SlideStoryboard/>
< /DataTrigger.EnterActions>
< DataTrigger.ExitActions>
< BeginStoryboard故事板={StaticResource的storyBoardOut}/>
< /DataTrigger.ExitActions>
< / DataTrigger>
< /Style.Triggers>
< /样式和GT;
边框:
< BORDER = VerticalAlignment顶部
风格={StaticResource的bdrSlideIn}>
< WPFToolKit:DataGrid的名称=dgSearchResults
的ItemsSource ={结合的SearchResult}
了maxHeight =280
VerticalAlignment =评出的> ...
如果你想保持高度动态的,那么你不能直接动画身高:正如你所看到的,除非你明确地赋值WPF会尝试向插值。NaN的结果相反,给你的元素LayoutTransform< ScaleTransform />和动画这种转变的scaleX和scaleY参数
Been trying to create an animation to dynamically adjust height. I found this info that helped but when I try to use it I get an error: 'System.Windows.Media.Animation.DoubleAnimation' cannot use default destination value of 'NaN'.
If I specify the height I get that error.
Style:
<Style x:Key="bdrSlideIn"
TargetType="{x:Type Border}">
<Style.Resources>
<Storyboard x:Key="storyBoardIn">
<DoubleAnimation BeginTime="00:00:00"
From="0"
Duration="00:00:00.65"
Storyboard.TargetName="{x:Null}"
Storyboard.TargetProperty="(FrameworkElement.Height)"
DecelerationRatio="1" />
</Storyboard>
<Storyboard x:Key="storyBoardOut">
<DoubleAnimation BeginTime="00:00:00"
To="0"
Duration="00:00:00.65"
Storyboard.TargetName="{x:Null}"
Storyboard.TargetProperty="(FrameworkElement.Height)"
AccelerationRatio="1" />
</Storyboard>
</Style.Resources>
<Style.Triggers>
<DataTrigger Binding="{Binding SearchExecuted}"
Value="True">
<DataTrigger.EnterActions>
<BeginStoryboard Storyboard="{StaticResource storyBoardIn}"
Name="SlideStoryboard" />
</DataTrigger.EnterActions>
<DataTrigger.ExitActions>
<BeginStoryboard Storyboard="{StaticResource storyBoardOut}" />
</DataTrigger.ExitActions>
</DataTrigger>
</Style.Triggers>
</Style>
Border:
<Border VerticalAlignment="Top"
Style="{StaticResource bdrSlideIn}">
<WPFToolKit:DataGrid Name="dgSearchResults"
ItemsSource="{Binding SearchResults}"
MaxHeight="280"
VerticalAlignment="Top">...
If you want to keep Height dynamic then you can't animate Height directly: As you've seen, unless you explicitly assign it WPF will try to interpolate to NaN.
Instead, give your element a LayoutTransform <ScaleTransform/>, and animate the ScaleX and ScaleY parameters of that transformation.
这篇关于试图以动画的高度,但得到错误的高度为NaN的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!