WPF连续动画
本文关键字:动画 连续 WPF | 更新日期: 2023-09-27 17:54:11
我正在尝试使一些图像循环,就像你在老虎机中看到的那样。我现在的代码更多的是一个选框,所以图像从上到下移动,当它们移动时,在第一个图像后面有一些空白。
如何使最后一个图像在循环中紧随第一个图像?
XAML:<Window x:Class="SlotV3.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Slot Machine" Height="600" Width="800" Loaded="Window_Loaded">
<Grid>
<Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="634,185,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="button1_Click" />
<Canvas Name="canvas1" Margin="82,49,458,12" ClipToBounds="True" Height="500">
<StackPanel Height="1043" Name="stackPanel1" Width="193" Canvas.Left="28" Canvas.Top="8">
images here...
</StackPanel>
</Canvas>
</Grid>
</Window>
和我使用的动画代码:
DoubleAnimation da = new DoubleAnimation();
da.From = -stackPanel1.ActualHeight;
da.To = canvas1.ActualHeight;
da.Duration = new Duration(TimeSpan.FromSeconds(0.25));
da.RepeatBehavior = RepeatBehavior.Forever;
stackPanel1.BeginAnimation(Canvas.TopProperty, da);
我认为下面的方法更简单。尝试使用这个事件:
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
CompositionTarget.Rendering += new EventHandler(CompositionTarget_Rendering);
}
void CompositionTarget_Rendering(object sender, EventArgs e)
{
Rectangle smoke = new Rectangle();
LayoutRoot.Children.Add(smoke);
smoke.Y -= 5;
}
}
这是一个伪代码,但是这个策略会使一个对象从下到上运行。
http://msdn.microsoft.com/en-us/library/system.windows.media.compositiontarget.rendering.aspx Y228