KTOV
KTOV

Reputation: 704

Rotating image element throwing exception

I'm trying to get the initial degree angle value of my mainrocket_img which is an Image element. To do this, I'm using a timer.. the timer is to be used to get the initial degree, and then change the value of Angle every second. This is my code:

    public void startRotationTimer()
    {
        rotationTimer = new DispatcherTimer();
        rotationTimer.Tick += rotateTimer_Tick;
        rotationTimer.Interval = new TimeSpan(0, 0, 0, 0, 100);
        rotationTimer.Start();
    }

    void rotateTimer_Tick(object sender, object e)
    {
        RotateTransform transform = mainrocket_img.RenderTransform as RotateTransform;
        double doubleAngle = transform.Angle;
    }

However on line double doubleAngle = transform.Angle; I get this exception:

Object reference not set to an instance of an object.

I just can't seem to understand why? Does anyone know what I'm doing wrong?

Upvotes: 1

Views: 159

Answers (1)

Philip W
Philip W

Reputation: 791

Your code only works if you somewhere have set the RenderTransform property beforehand.

Set RenderTransform in XAML:

<Image>
    <Image.RenderTransform>
        <RotateTransform Angle="0"/>
    </Image.RenderTransform>
</Image>

Set RenderTransform in code behind:

void rotateTimer_Tick(object sender, object e)
{
    RotateTransform transform = mainrocket_img.RenderTransform as RotateTransform;
    if (transform == null)
    {
        transform = new RotateTransform();
        mainrocket_img.RenderTransform = transform;
    }
    double doubleAngle = transform.Angle;
}

Upvotes: 1

Related Questions