2016-03-21 9 views
1

ich einfaches Raster mit Storyboard in C# -Code in wpf mein XAML-Code drehen will, istWie Gitter in wpf C# -Code

<Window x:Class="rotate_test.MainWindow" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
     xmlns:local="clr-namespace:rotate_test" 
     mc:Ignorable="d" 
     Title="MainWindow" Height="350" Width="525"> 
    <Grid> 
     <Grid Name="my_grid"> 
      <Button x:Name="button" Content="Button" HorizontalAlignment="Left" Margin="150,170,0,0" VerticalAlignment="Top" Width="75" Click="button_Click"/> 
     </Grid> 
    </Grid> 
</Window> 

, die in ihm mit Storyboard drehen in Onclick-Ereignisse Gitter und eine Taste für Taste I

Storyboard storyboard = new Storyboard(); 
    DoubleAnimation rotateAnimation = new DoubleAnimation() 
    { 
     From = 0, 
     To = 360, 
     Duration = new Duration(TimeSpan.FromSeconds(10.0)) 
}; 
    Storyboard.SetTarget(rotateAnimation, my_grid); 
    Storyboard.SetTargetProperty(rotateAnimation, new PropertyPath("(UIElement.RenderTransform).(RotateTransform.Angle)")); 

    storyboard.Children.Add(rotateAnimation); 
    storyboard.Begin(); 

aber nicht Dosis arbeiten, was ist mein Problem? Wie kann ich Beschleunigung für Animationen einstellen? thnx

Antwort

2

Sie müssen die Gitter RenderTransform initialisieren, bevor Sie es animieren können.

<Grid Name="my_grid"> 
    <Grid.RenderTransform> 
     <RotateTransform /> 
    </Grid.RenderTransform> 
</Grid> 

Sie konnten die RotateTransform direkt ohne Storyboard animieren auch.

nur einen Namen geben

<RotateTransform x:Name="transform" /> 

und animieren es im Code hinter wie

transform.BeginAnimation(RotateTransform.AngleProperty, rotateAnimation); 

Außerdem hat Double mehrere Eigenschaften, die Beschleunigungs- und Verzögerungssteuerung, wie AccelerationRatio, DecelerationRatio und EasingFunction.

+0

tnx tnx tnx tnx –

+0

bist du khnow wie kann ich die Beschleunigung dafür einstellen? –

+0

Werfen Sie einen Blick auf die Online-Dokumentation der Eigenschaften, die ich in der Antwort erwähne. Was Sie wahrscheinlich wollen, ist die EasingFunction zu setzen. Siehe hier: https://msdn.microsoft.com/en-us/library/ee308751(v=vs.100).aspx – Clemens