Случайная анимация в Silverlight - PullRequest
2 голосов
/ 15 января 2011

У меня есть изображение Silverlight.

<Image Source="pics/pic1.png" Stretch="Fill" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" MouseLeftButtonUp="startRandomAnim">
    <Image.Resources>
        <Storyboard x:Name="randomMove">
            <!-- code -->
        </Storyboard>
    </Image.Resources>
</Image>

Я бы хотел, чтобы при щелчке он перемещался в случайную точку на холсте. Как я могу это сделать? Могу ли я сделать это в файле XAML или мне нужно обработать его в базовом C #?

Ответы [ 2 ]

1 голос
/ 15 января 2011

Чтобы получить случайное значение, вам нужно использовать некоторый код.

Вы можете, чтобы использовать наименьшее возможное количество C #, создать класс, который содержит координаты цели для анимации, создатьобъект этого класса и поместите его в DataContext изображения и привяжите раскадровку к координатам.Затем, когда щелкнет использование, сгенерируйте случайные координаты и запустите анимацию.

0 голосов
/ 15 января 2011

Вы не можете генерировать случайные числа в раскадровке.Я бы создал анимацию в XAML:

<Image Source="pics/pic1.png" Stretch="Fill" Canvas.Left="50" Canvas.Top="50" Width="100" Height="100" MouseLeftButtonUp="startRandomAnim"
       x:Name="myImage">
        <Image.Resources>
            <Storyboard x:Key="anim">
                <DoubleAnimation Storyboard.TargetName="myImage" Storyboard.TargetProperty="(Canvas.Left)" To="30" Duration="0:0:0.1" />
            </Storyboard>
        </Image.Resources>
</Image>

Затем в обработчике щелчков на вашем изображении установите случайное местоположение и запустите анимацию:

var sb= image.Resources["anim"] as Storyboard;
var anim = sb.Children[0] as DoubleAnimation;
anim.To = // some random position
sb.Begin();
...