2010-05-24 61 views

回答

3

您可以尝试使用ItemsControl与应用上有一个TranslateTransform设置ItemsControl.ItemPanel到一个StackPanel 。然后你可以有一个正在运行的Storyboard来调整Translate Transform的Y坐标的位置。

编辑:实例

<Border BorderBrush="Black" BorderThickness="2" 
     Height="100" Width="100" 
     HorizontalAlignment="Left" VerticalAlignment="Top" > 
    <Border.Clip> 
     <RectangleGeometry Rect="0,0,100,100" />  
    </Border.Clip> 
    <ItemsControl ItemsSource="{StaticResource Collection}"> 
     <ItemsControl.RenderTransform> 
      <TranslateTransform x:Name="Transform" /> 
     </ItemsControl.RenderTransform> 
     <i:Interaction.Triggers> 
      <i:EventTrigger> 
       <ei:ControlStoryboardAction 
        Storyboard="{StaticResource TransformMove}"/> 
     </i:EventTrigger> 
     </i:Interaction.Triggers> 
    </ItemsControl> 
</Border> 

然后包括故事板这在你的控制资源:

<Storyboard x:Key="TransformMove" Storyboard.TargetName="Transform" Storyboard.TargetProperty="Y"> 
    <DoubleAnimation From="-100" To="100" Duration="0:0:10" 
        RepeatBehavior="Forever"/> 
</Storyboard> 
+0

我不能够在混合4中得到ControlStoryBoardAction,是这个完整的代码或我必须写一些额外的位来得到这个工作...并感谢 – 2010-05-25 10:22:37

+0

ControlStoryboardAction在混合4中。我定义的命名空间是xmlns:ei =“http://schemas.microsoft.com/expression/ 2010 /互动“,我相信他们在M icrosoft.Expression.Interactions.dll。您可能需要拨动边框的宽度/高度和剪裁区域的矩形才能看起来正确,但它应该按原样运行。 – Stephan 2010-05-25 12:45:48