我可以像这样应用角度
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);
但我不确定如何取回 角度值?
您可以保存旋转变换并稍后访问它;
RotateTransform rTransform = new RotateTransform(angle);
...
var temp = rTransform.Angle;
您可能总是尝试将元素RenderTransform
转换为 aRotateTransform
并且(在成功转换的情况下)从Angle
属性中获取角度值:
var element = canvas1.Children[0];
var transform = element.RenderTransform as RotateTransform;
var angle = transform != null ? transform.Angle : 0.0;
变换是 3x3 矩阵。您可以在此处阅读有关旋转特定位的信息
您可以通过使用该RenderTransform.Value
属性来访问矩阵(而不是像之前的理论那样将一根电线插入您的后脑勺)
使用Matrix.M11
、Matrix.M12
和值Matrix.M21
来Matrix.M22
计算您的角度!