我想以下图片比文本更好地描述了这个问题...
alt text http://img179.imageshack.us/img179/8949/samplescrollingitems.png
这就是我需要的。
<ListBox x:Name="NamesListBox" ItemsSource="{Binding}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel x:Name="ItemWrapPanel">
<WrapPanel.RenderTransform>
<TranslateTransform x:Name="ItemWrapPanelTransformation" X="0" />
</WrapPanel.RenderTransform>
<WrapPanel.Triggers>
<EventTrigger RoutedEvent="WrapPanel.Loaded">
<BeginStoryboard>
<Storyboard>
<DoubleAnimation Storyboard.TargetName="ItemWrapPanelTransformation" Storyboard.TargetProperty="X" To="-1000" From="{Binding ElementName=ScrollingListItemsWindow, Path=Width}" Duration="0:0:9" RepeatBehavior="100" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</WrapPanel.Triggers>
</WrapPanel>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Label Content="{Binding}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
就是我做的。但在这里我不想硬编码-1000的X值,而是我想根据包装板的长度/项数来确定。有人可以帮我吗?
我选择列表框的原因是项目数量可以随时增加和减少,更适合问题。
如果您有任何其他想法,请提出建议。
感谢。
答案 0 :(得分:1)
在使用转换器时,您是否尝试将X绑定到WrapPanel?
转换器将WrapPanel实例作为参数获取,然后您可以分析其属性并根据项目的宽度或数量返回值。