旋转木马类型滚动



使用c#,实现2D旋转木马的最佳方式是什么。

什么会是更好的WPF或Windows窗体。如何是最好的动画方式?只是使用计时器样式的记号逐渐移动像素?

类似(psuedo代码):

//draw carousel here
using Timer every tick move the images left slightly

感谢

更多信息:

我希望它运行得很快,因为将有30个图像,我希望它在选择随机一个之前滚动并循环一到两次

WPF一路过关斩将!最简单的方法是创建一个带有ListBox的UserControl,并将项目集合绑定到它。诀窍是如何包含这些项目。

这是我不久前编码的一个样本:

<ListBox ItemsSource="{Binding Files}" HorizontalContentAlignment="Stretch" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"  SelectionMode="Single" ScrollViewer.HorizontalScrollBarVisibility="Disabled" ScrollViewer.VerticalScrollBarVisibility="Disabled">
    <ListBox.ItemTemplate>
    </ListBox.ItemTemplate>
    <ListBox.ItemsPanel>
        <ItemsPanelTemplate>
            <UniformGrid Columns="10" VerticalAlignment="Center" IsItemsHost="True"/>
        </ItemsPanelTemplate>
    </ListBox.ItemsPanel>
    <ListBox.ItemContainerStyle>
    </ListBox.ItemContainerStyle>
</ListBox>

使用具有Orientation="Horizontal"ScrollViewer.HorizontalScrollBarVisibility="Auto"的StackPanel也可以完成同样的操作。

有任何问题,请告诉兄弟。

抱歉,错过了这个部分:

最好的动画方式是什么?只是使用计时器样式的记号逐渐移动像素?

最好的方法是使用WPF的Storyboard和Animation类。总体思路是:

  1. 有向前/向后箭头
  2. 根据单击的箭头,删除第一个项目并将新项目添加到列表末尾,或者删除最后一个项目并在列表开头插入项目
  3. 使用动画模拟添加/移除,即淡出项目(或向左/向右滑动,无论怎样),然后在动画完成后,从绑定集合中移除实际项目

此外,请确保绑定的集合具有可变数量的项(在我的示例中为10),并使用另一个集合来跟踪下一个要删除和添加的项。

相关内容

最新更新