轮播类型滚动

时间:2016-04-11 19:56:02

标签: c#

使用c#,实现2D轮播的最佳方法是什么。

什么是更好的WPF或Windows窗体。如何制作动画的最佳方式是什么?只需使用计时器样式刻度逐渐移动像素?

喜欢(伪代码):

files

由于

更多信息:

我希望它能够快速前进,因为会有30张图像,我希望它在选择随机图像之前滚动并循环一次或两次

1 个答案:

答案 0 :(得分:1)

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. 使用动画模拟添加/删除,即淡出项目(或向左/向右滑动,等等),然后在动画完成后,从绑定集合中删除实际项目。
  4. 此外,确保绑定集合具有可变数量的项目(我的样本中为10个),并使用另一个集合来跟踪要删除和添加的下一个项目。