Search code examples
c#wpfpixelsense

Manipulating Images in Windows Surface 2.0 (rotation)


I am using c# wpf for windows surface 2.0.

I have been working with a set of images that i import in the xmpl file.

I found some examples for text, but for the images they used GDI+ to manipulate images and animate them, but I do not want that.

The main thing that I want to do now is to rotate(transform rotate) an image and show that it is rotating.

Here is how I am addressing the images:

Canvas.SetTop(image1, 0);
Canvas.SetLeft(image1, 200);

Any help would be much appreciated.

Thank you.


Solution

  • Your question is not very specific and there are a lot of ways to animate the rotation of an image.

    A simple approach would be to assign a RotateTransform to the RenderTransform of your Image controls and then animate the Angle property of these RotateTransforms.

    <Image x:Name="image" Source="..."
           RenderTransformOrigin="0.5,0.5">
        <Image.RenderTransform>
            <RotateTransform/>
        </Image.RenderTransform>
    </Image>
    

    Start the animation in code like this:

    var transform = (RotateTransform)image.RenderTransform;
    var animation = new DoubleAnimation(360, TimeSpan.FromSeconds(5));
    transform.BeginAnimation(RotateTransform.AngleProperty, animation);
    

    You may start reading about animations in WPF in the Animation Overview article on MSDN. The Transforms Overview article may also be helpful.