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);

WPF连续动画

我认为下面的方法更简单。尝试使用这个事件:

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