Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/typo3/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何获得安格尔酒店_C#_.net_Wpf - Fatal编程技术网

C# 如何获得安格尔酒店

C# 如何获得安格尔酒店,c#,.net,wpf,C#,.net,Wpf,我可以应用角度像 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

我可以应用角度

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;

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

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


使用
矩阵.M11
矩阵.M12
矩阵.M21
矩阵.M22
值计算角度

您可以始终尝试将元素的
渲染变换转换为
旋转变换
,并(在成功转换的情况下)从
角度
属性获取角度值:

var element = canvas1.Children[0];
var transform = element.RenderTransform as RotateTransform;
var angle = transform != null ? transform.Angle : 0.0;

为什么要在代码中首先创建UI元素?@HighCore我需要它。:)@HighCore与问题无关,在代码中创建UI元素也没有错。@FlyingStrudel除非这是某种
自定义控件(不是用户控件)。这是一种非常糟糕的方法。这不是winforms,而是WPF,在WPF中有XAML,这是您创建UI的工具。即使目的是在控件中显示多个对象,也可以使用
ItemsControl
和一些数据模板来实现。“这是WPF做事的方式。”高科先生,你需要安定下来。我不是在攻击你或你喜欢的开发方法。一个笼统的声明说在代码中声明UI元素是错误的或是史前的,这并不能说明全部情况。有时需要在三个文件和两个支持类中使用500行XAML才能进行更改,而在一个文件中使用100行C#就可以完成更改。选择哪条路径的决定应该基于开发和维护的成本,而不是盲目地遵循设计模式。如果你还想讨论这个问题,那就让聊天室不要把评论弄得乱七八糟。