我需要使用DeltaManipulation.Rotation确定旋转方向。 代码工作,但每次顺时针或逆时针完成旋转时返回错误信息。 我做错了什么?
int oldValue = 0;
int realValue;
private void ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
e.Handled = true;
MyRotateTransform.Angle += e.DeltaManipulation.Rotation;
int angle = (int)MyRotateTransform.Angle;
realValue = angle % 360;
if (realValue < 0)
{
realValue = 360 - (-realValue);
}
if (realValue > oldValue)
{
//clockwise rotation
oldValue = realValue;
}
if (realValue < oldValue)
{
//counterclockwise rotation
oldValue = realValue;
}
}
答案 0 :(得分:0)
不要检查MyRotateTransform.Angle
中的累积(和标准化)旋转角度。相反,只需检查e.DeltaManipulation.Rotation
。
如果它小于零,则旋转是逆时针旋转,旋转顺时针旋转大于零:
if (e.DeltaManipulation.Rotation < 0)
{
Debug.WriteLine("counterclockwise");
}
else if (e.DeltaManipulation.Rotation > 0)
{
Debug.WriteLine("clockwise");
}