旋转图像元素抛出异常
Rotating image element throwing exception
我正在尝试获取 mainrocket_img
的初始角度值,这是一个 Image
元素。为此,我使用了一个计时器。该计时器用于获取初始度数,然后每秒更改 Angle
的值。这是我的代码:
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;
}
但是在线 double doubleAngle = transform.Angle;
我得到这个异常:
对象引用未设置为对象的实例。
我就是不明白为什么?有谁知道我做错了什么?
您的代码只有在您事先在某处设置了 RenderTransform
属性 后才有效。
在XAML中设置RenderTransform
:
<Image>
<Image.RenderTransform>
<RotateTransform Angle="0"/>
</Image.RenderTransform>
</Image>
在后面的代码中设置RenderTransform
:
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;
}
我正在尝试获取 mainrocket_img
的初始角度值,这是一个 Image
元素。为此,我使用了一个计时器。该计时器用于获取初始度数,然后每秒更改 Angle
的值。这是我的代码:
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;
}
但是在线 double doubleAngle = transform.Angle;
我得到这个异常:
对象引用未设置为对象的实例。
我就是不明白为什么?有谁知道我做错了什么?
您的代码只有在您事先在某处设置了 RenderTransform
属性 后才有效。
在XAML中设置RenderTransform
:
<Image>
<Image.RenderTransform>
<RotateTransform Angle="0"/>
</Image.RenderTransform>
</Image>
在后面的代码中设置RenderTransform
:
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;
}