c# - RotateTransform 是如何工作的?我可以更改矩形上旋转的点吗?
问题描述
我不明白 RenderTransform 偏移是如何工作的。我想围绕一个点旋转一个矩形。具体来说,我希望矩形围绕宽度一半的点旋转。这是一个屏幕截图:
这是代码:
RotateTransform rotateTransform1 = new RotateTransform(angle, 0 , 0 );
myRectangle.RenderTransform = rotateTransform1;
我尝试了不同的值来替换 0(如宽度 / 2)。这似乎改变了屏幕上旋转中心的位置。我需要改变的是它旋转的矩形的哪一部分。具体来说,我希望矩形围绕其宽度中间的一个点旋转。
甚至可以调整矩形旋转的点吗?
解决方案
RenderTransformOrigin 对 Point 结构值的使用有点不标准,因为 Point 不代表坐标系中的绝对位置。相反,0 到 1 之间的值被解释为每个 x,y 轴中当前元素范围的一个因子。例如,(0.5,0.5) 将导致渲染变换以元素为中心,或者 (1,1) 将渲染变换放置在元素的右下角。
myRectangle.RenderTransformOrigin = new Point(0.5,0.5);
myRectangle.RenderTransform = rotateTransform1;
推荐阅读
- kotlin - 无法创建可变同步 TreeMap
- android - 在 EditText Android 中插入的右对齐字符串,未按预期显示
- linux - 如何仅在命令上获取数据
- excel - 更改多列的格式,但排除第一行,只包括最后一行的数据
- c# - ASP.NET Core 5 API 在 Azure Web App 磁盘空间上写入文件
- vue.js - 使用 vuex getter 重新渲染组件
- postgresql - PostgreSQL/pgAdmin4 错误:引用表“索引”的给定键没有唯一约束匹配
- node.js - Axios 在 React 前端发帖导致发帖到 MailerLite 时出错
- discord.js - discord.js反应TypeError:无法读取未定义的属性'get'
- asp.net-mvc - 如何在 Asp.net Mvc 中保存和读取 Cookie