【发布时间】:2011-07-27 16:33:55
【问题描述】:
我是WPF的初学者,我有一个数组图像要显示在网格中,然后有这个按钮,左右,这样当我点击左时我会将图像向左移动显示数组中的另一组图像。右键也可以将图像向右移动。当浏览当天的头条新闻时,它就像在 www.yahoo.com 主页中一样。如何在 WPF 中做到这一点?谢谢!
【问题讨论】:
我是WPF的初学者,我有一个数组图像要显示在网格中,然后有这个按钮,左右,这样当我点击左时我会将图像向左移动显示数组中的另一组图像。右键也可以将图像向右移动。当浏览当天的头条新闻时,它就像在 www.yahoo.com 主页中一样。如何在 WPF 中做到这一点?谢谢!
【问题讨论】:
一种方法是在网格中的每个单元格中放置一个画布,然后将图像放置在画布中。这样,您可以为图像的 Canvas.Left 属性设置动画以左右移动。需要注意的一个问题(根据经验!)是在动画中正确绑定...对于附加属性,绑定语法需要像这样的括号...
<DoubleAnimation Storyboard.TargetProperty="(Canvas.Left)" ...etc...
更新:实际上我想我误解了你的目的 - 也许this 更像你需要的?它谈到了在没有滚动条的情况下为 ScrollViewer 设置动画。
【讨论】:
您可以使用 itemscontrol 并在单击按钮时更改项目的来源...
在这个示例中查看下面的示例,我正在使用堆栈面板作为项目主机的项目控件...和数据模板中的图像....
点击左右按钮可以改变itemscontrol的itemssource...
<ItemsControl ItemsSource="{Binding Images}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Image Source={Binding}></Image>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Stackpanle Orientation="Horizontal" IsItemsHost="True" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
编辑: 在更改数据上下文之前,您可以为项目控件设置动画并更改数据上下文并将其引入..
【讨论】: