Reputation: 704
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
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