如何将GridLength动画从“自动”分离到“*”?

时间:2010-02-10 18:18:57

标签: wpf xaml animation gridlength

我需要使用Storyboard为此属性设置动画。 写自己的动画是最好的选择吗?

1 个答案:

答案 0 :(得分:7)

不,很可能使用标准XAML:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" x:Name="col0"/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>
    <Grid.Resources>
        <Storyboard x:Key="sbCol0ToAuto">
            <ObjectAnimationUsingKeyFrames 
                BeginTime="0" Duration="0"
                Storyboard.TargetName="col0" Storyboard.TargetProperty="Width">
                <DiscreteObjectKeyFrame KeyTime="0">
                    <DiscreteObjectKeyFrame.Value>
                        <GridLength>*</GridLength>
                     </DiscreteObjectKeyFrame.Value>
                </DiscreteObjectKeyFrame>
             </ObjectAnimationUsingKeyFrames>
         </Storyboard>
    </Grid.Resources>
...
</Grid>

更容易回到自动:

<DiscreteObjectKeyFrame KeyTime="0" Value="{x:Static GridLength.Auto}">