试图以动画的高度,但得到错误的高度为NaN [英] Trying to animate height but getting error that height is NaN

查看:114
本文介绍了试图以动画的高度,但得到错误的高度为NaN的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在试图创建一个动画,动态地调整高度。我发现此信息,帮助,但是当我尝试使用它,我得到一个错误:System.Windows.Media.Animation.DoubleAnimation'不能使用的'南的默认目标值

如果我指定的高度,我得到这个错误。

风格:

 <风格X:键=bdrSlideIn
   的TargetType ={X:边框类型}>
        < Style.Resources>
            <情节提要X:键=storyBoardIn>
                < D​​oubleAnimation是的BeginTime =00:00:00
                                 从=0
                                 持续时间=00:00:00.65
                                 Storyboard.TargetName ={X:空}
                                 Storyboard.TargetProperty =(FrameworkElement.Height)
                                 DecelerationRatio =1/>
            < /故事板>            <情节提要X:键=storyBoardOut>
                < D​​oubleAnimation是的BeginTime =00:00:00
                                 为=0
                                 持续时间=00:00:00.65
                                 Storyboard.TargetName ={X:空}
                                 Storyboard.TargetProperty =(FrameworkElement.Height)
                                 AccelerationRatio =1/>
            < /故事板>
        < /Style.Resources>        < Style.Triggers>
            < D​​ataTrigger绑定={结合SearchExecuted}
                         值=真>
                < D​​ataTrigger.EnterActions>
                    < BeginStoryboard故事板={StaticResource的storyBoardIn}
                                     NAME =SlideStoryboard/>
                < /DataTrigger.EnterActions>
                < D​​ataTrigger.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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆