2013-08-23 62 views
3

我需要更改行和列Together。 这可能吗? 我已经搜查,但找不到答案类型'System.Windows.Media.Animation.DoubleAnimation'的AnimationTimeline不能用于为'System.Int32'类型的'Row'属性设置动画效果。

 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> 

回答

2

RowPropertyColumnPropertyInt32性质,所以你必须使用一个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); 
相关问题