c# - 无法仅在 x 轴上缩放路径的某些子级
问题描述
我的代码是在 wpf 中绘制水平线和垂直线的组合。我只想缩放水平线..此代码同时缩放水平和垂直。
Path path = new Path();
SolidColorBrush brush = new SolidColorBrush();
brush.Color = Colors.Red;
path.Stroke = brush;
path.StrokeThickness = 4;
LineGeometry lineGeometry = new LineGeometry();
lineGeometry.StartPoint = new Point(10, 100);
lineGeometry.EndPoint = new Point(100, 100);
LineGeometry lineGeometry2 = new LineGeometry();
lineGeometry2.StartPoint = new Point(100, 100);
lineGeometry2.EndPoint = new Point(100, 200);
LineGeometry lineGeometry3 = new LineGeometry();
lineGeometry3.StartPoint = new Point(100, 200);
lineGeometry3.EndPoint = new Point(200, 200);
LineGeometry lineGeometry4 = new LineGeometry();
lineGeometry4.StartPoint = new Point(200, 200);
lineGeometry4.EndPoint = new Point(200, 100);
LineGeometry lineGeometry5 = new LineGeometry();
lineGeometry5.StartPoint = new Point(200, 100);
lineGeometry5.EndPoint = new Point(300, 100);
GeometryGroup geometryGroup = new GeometryGroup();
geometryGroup.Children.Add(lineGeometry);
geometryGroup.Children.Add(lineGeometry2);
geometryGroup.Children.Add(lineGeometry3);
geometryGroup.Children.Add(lineGeometry4);
geometryGroup.Children.Add(lineGeometry5);
path.Data = geometryGroup;
var scaling = new ScaleTransform(2, 1);
path.RenderTransform = scaling;
canvas1.Children.Add(path);
解决方案
如果您只想缩放几何体,而不是 Path 的 StrokeThickness,请不要设置 Path 的 RenderTransform。
相反,直接转换几何:
geometryGroup.Transform = new ScaleTransform(2, 1);
path.Data = geometryGroup;
canvas1.Children.Add(path);
推荐阅读
- excel - 将单元格背景颜色分配给引用单元格中的 rgb 并重复多行或所有行
- azure - 在 Azure 目录中注册应用程序时谁获得权限?
- sql - 使用访问查询更改数据字段类型
- powershell - 使用 powershell 查找和压缩
- reactjs - 渲染平面列表时缺少图像
- django - Django + backgroundtask + AWS Elasticbeanstalk 部署超时
- linux - 运行高内存使用率的进程“oka” - Linux NAS - Asustor AS5202T
- c++ - 在 MPI 中共享数组的一部分
- javascript - Vuetify Search Textfield in APpbar,背景褪色,点击展开
- sql-server - 找到一个条件存在但为空或对另一个条件没有价值的地方?