WPF Непрерывная анимация - PullRequest
0 голосов
/ 03 мая 2011

Я пытаюсь заставить некоторые изображения зацикливаться, что-то вроде того, что вы видите в игровом автомате.Мой текущий код больше похож на шатер, поэтому изображения идут сверху вниз, и пока они перемещаются, есть некоторое пространство позади первого изображения.

Как сделать так, чтобы последнее изображение сразу же следовало запервое изображение в цикле?

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

1 Ответ

0 голосов
/ 03 мая 2011

Я думаю, что следующий способ проще.Попробуйте использовать это событие:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...