自动收报机 - 银光的圆形效应

时间:2010-01-13 11:09:34

标签: silverlight silverlight-3.0

我正在开发一个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>

如何获得循环效果?

1 个答案:

答案 0 :(得分:0)

这是获得所需效果的最简单方法。

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