“System.Windows.Media.Animation.DoubleAnimation”类型的AnimationTimeline不能用于为“System.Int32”类型的“Row”属性设置动画。

时间:2013-08-23 04:04:20

标签: wpf animation storyboard wpf-4.0

我需要一起更改行和列。 这可能吗? 我搜索过但找不到答案

        var da = new DoubleAnimation();
        da.From = 0;
        da.To = 2;
        da.Duration = new Duration(TimeSpan.FromSeconds(1));
        Soldier.BeginAnimation(Grid.RowProperty, da);
        Soldier.BeginAnimation(Grid.ColumnProperty, da);

xaml代码:

   <Grid>
        <Grid Name="Grm" Width="500" Height="500" Background="#FF14831E">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
                <ColumnDefinition Width="100"/>
            </Grid.ColumnDefinitions>
            <Grid.RowDefinitions>
                <RowDefinition Height="100"/>
                <RowDefinition Height="100"/>
                <RowDefinition Height="100"/>
                <RowDefinition Height="100"/>
                <RowDefinition Height="100"/>
            </Grid.RowDefinitions>
            <Image Name="Soldier" Grid.Row="0" Grid.Column="0" Source="Soldier-Red.png" Width="26" Height="34" MouseLeftButtonDown="Image_MouseLeftButtonDown_1"></Image>
        </Grid>
    </Grid>

1 个答案:

答案 0 :(得分:2)

RowPropertyColumnProperty属于Int32属性,因此您必须使用Int32Animation

示例:

    var da = new Int32Animation();
    da.From = 0;
    da.To = 2;
    da.Duration = new Duration(TimeSpan.FromSeconds(1));
    Soldier.BeginAnimation(Grid.RowProperty, da);
    Soldier.BeginAnimation(Grid.ColumnProperty, da);