2010-01-13 44 views
2

我正在Silverlight自动收报机应用程序上工作,类似于5个链接的东西将会显示出来,并且它们将像一个自动收报机(从右到左)一样移动。 我能够解析I/P的XML文件,也获得标题和相应的网址,那些在页面中正常出现,也像移动股票一样移动,但循环效应丢失。意味着连续的链接流不正确。在自动收银机中的循环效应

<Grid x:Name="LayoutRoot"> 
    <StackPanel x:Name="mystackpanel" Grid.Column="1" Orientation="Vertical"> 
     <Canvas> 
      <Canvas.Resources> 
       <Storyboard x:Name="sb"> 
        <DoubleAnimation x:Name="da" BeginTime="00:00:05" 
       Storyboard.TargetName="LinkList" 
       Storyboard.TargetProperty="(Canvas.Left)" 
       From="0" To="-500" Duration="0:0:5" RepeatBehavior="Forever"/> 

       </Storyboard> 
      </Canvas.Resources> 
      <ListBox x:Name="LinkList" 
        BorderThickness="0" 
        Opacity="0.5" 
        HorizontalAlignment="Left" 
        > 
      <ListBox.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel x:Name="panel" Orientation="Horizontal" HorizontalAlignment="Left"/> 
       </ItemsPanelTemplate> 
      </ListBox.ItemsPanel> 
      <ListBox.ItemTemplate> 
       <DataTemplate> 
        <HyperlinkButton x:Name="mylink" 
             Foreground="Black" 
             FontSize="10" 
             FontWeight="Bold" 
             ScrollViewer.HorizontalScrollBarVisibility="Disabled" 
             Tag="{Binding}" 
             Content="{Binding Path=Title}" 
             NavigateUri="{Binding Path=URi}" 
             IsTabStop="False"/> 
       </DataTemplate> 
      </ListBox.ItemTemplate> 
     </ListBox> 

</Canvas> 

</StackPanel> 

    </Grid> 

如何获得循环效果?

回答

0

以下是获取所需效果的最简单方法。

  • 将双动画中的From设置为外部的宽度StackPanel。这样你的网址就从最右边开始。
  • 确保To值至少为要滚动的内容的整个宽度的负值。
  • RectangleGeometry添加到您的外部StackPanel,它的起点为0,0并且具有您的StackPanel的宽度和高度。
  • 调整Duration以获得合理的像素/秒速率(您希望随着更多内容出现,恒速不会增加)。