2014-09-23 4 views
-1

Я пытаюсь сделать простую анимацию. Я просто хочу анимировать прямоугольник. Я нашел следующий кодАнимация в WPF MVVM

XAML

<Window x:Class="WpfApplication2.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Rectangle Height="56" HorizontalAlignment="Left" Margin="204,104,0,0" Name="rectangle1" Stroke="Black" VerticalAlignment="Top" Width="200" Fill="#FFFA0000" /> 
     <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="21,276,0,0" Name="button1" VerticalAlignment="Top" Width="75" Click="rotate" /> 
    </Grid> 
</Window> 

C#

private void rotate(object sender, RoutedEventArgs e) 
{ 
    DoubleAnimation da = new DoubleAnimation(); 
    da.From = 0; 
    da.To = 360; 
    da.Duration = new Duration(TimeSpan.FromSeconds(3)); 
    da.RepeatBehavior = RepeatBehavior.Forever; 
    RotateTransform rt = new RotateTransform(); 
    rectangle1.RenderTransform = rt; 
    rt.BeginAnimation(RotateTransform.AngleProperty, da); 
} 

Он отлично работает, но мне нужно, чтобы изменить его для архитектуры MVVM. Обратите внимание на элемент «rectangle1». Как использовать этот элемент в MVVM?

ответ

1

Это типично нецелесообразно использовать подход MVVM для такого рода вещей. Анимация определенного элемента пользовательского интерфейса (почти всегда) Код для просмотра. Он специфичен для одного вида дизайна и может не применяться к другим представлениям, которые привязаны к одной и той же модели представления. Выполнение этого в коде зрения выглядит вполне приемлемым и, вероятно, лучшим подходом.