0

我可以像这样应用角度

double angle = 30;
Rectangle r = new Rectangle();
r.Width = 5;
r.Height = 130;
r.Fill = Brushes.Black;
r.RenderTransform = new RotateTransform(angle);
canvas1.Children.Add(r);

但我不确定如何取回 角度值?

4

3 回答 3

1

您可以保存旋转变换并稍后访问它;

RotateTransform rTransform = new RotateTransform(angle);
...
var temp = rTransform.Angle;
于 2013-02-04T17:29:52.457 回答
1

您可能总是尝试将元素RenderTransform转换为 aRotateTransform并且(在成功转换的情况下)从Angle属性中获取角度值:

var element = canvas1.Children[0];
var transform = element.RenderTransform as RotateTransform;
var angle = transform != null ? transform.Angle : 0.0;
于 2013-02-04T17:49:40.697 回答
0

变换是 3x3 矩阵。您可以在此处阅读有关旋转特定位的信息

您可以通过使用该RenderTransform.Value属性来访问矩阵(而不是像之前的理论那样将一根电线插入您的后脑勺)

使用Matrix.M11Matrix.M12和值Matrix.M21Matrix.M22计算您的角度!

于 2013-02-04T17:35:59.093 回答