我需要在Silverlight应用程序中创建一个滚动字幕。选框需要从右向左滚动。当它完成滚动时,它需要自动重启诀窍是,我需要使用ItemsControl,因为项目将在滚动时添加到列表中。我不知道如何做到这一点,我认为会有一个在线控件来证明这一点。但是,我找不到一个是不成功的。有人知道现有控件还是知道怎么做?
谢谢!
答案 0 :(得分:0)
这只是想法如何构建简单的选框。您必须通过测量ItemsControl的宽度(ActualWidth)来计算“从”和“到”,并计算故事板持续时间。 而不是硬编码的项目当然使用绑定。
<ScrollViewer Width="Auto"
Height="Auto"
BorderThickness="0"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch"
VerticalScrollBarVisibility="Disabled"
Margin="0"
Padding="0">
<Canvas>
<Canvas.Resources>
<Storyboard x:Name="Anim">
<DoubleAnimation From="480" To="-480" Storyboard.TargetName="Marquee"
Duration="0:0:10"
RepeatBehavior="Forever"
Storyboard.TargetProperty="(Canvas.Left)"/>
</Storyboard>
</Canvas.Resources>
<ItemsControl Canvas.Left="0" Name="Marquee">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.Items>
<TextBlock Text="Item1" Margin="10 0 0 0"/>
<TextBlock Text="Item2" Margin="10 0 0 0"/>
<TextBlock Text="Item3" Margin="10 0 0 0"/>
<TextBlock Text="Item4" Margin="10 0 0 0"/>
</ItemsControl.Items>
</ItemsControl>
</Canvas>
</ScrollViewer>