WPF中调用了TransformToAncestor以后,用Canvas.SetTop来设定位置遇到问题

mars_bolt 2011-11-01 02:26:06
在TransformToAncestor调用前。用transform render了size和角度。之后通过GeneralTransform来当前取得坐标。
获取坐标和当前的尺寸都是没有问题的。这时候设置一个矩形覆盖原控件。如果这个矩形是在函数内创建的就没有问题。如果不是。是window的成员的话。设定的位置就会还原到控件之前的位置。似乎成员矩形在TransformToAncestor调用时,受到了影响,要不就是canvas发生了偏移。这里很不明白。高手指点一下吧。

GeneralTransform tranform = CurItm.item.TransformToAncestor(can1);

Point leftTop = tranform.Transform(new Point(0, 0));
Rect itmTransformedRect = tranform.TransformBounds(new Rect(new Point(0, 0), new Point(item.ActualWidth, item.ActualHeight)));

rect.Height = itmTransformedRect.Height;
rect.Width = itmTransformedRect.Width;

if (rect.Parent == null)
can1.Children.Add(rect);

Canvas.SetLeft(rect, itmTransformedRect.X);
Canvas.SetTop(rect, itmTransformedRect.Y);


Rectangle re = new Rectangle();
re.Fill = Brushes.Blue;
re.Height = itmTransformedRect.Height;
re.Width = itmTransformedRect.Width;
Canvas.SetLeft(re, itmTransformedRect.X + 1);
Canvas.SetTop(re, itmTransformedRect.Y + 1);
can1.Children.Add(re);
上面的代码rect是window的矩形成员。re是函数内创建的矩形。同样的坐标进行设定结果确不同。高手请指点。
或者是能够计算出当前的偏移然后对rect进行设定让他出现在该出现的位置。
我尝试,用itmTransformedRect来再次转换。结果和预想的不同。
代码如下
Rect rec1 = tranform.TransformBounds(itmTransformedRect);
然后用rec1的X,Y来设定rect的位置,但是不行似乎发生了旋转以外的尺寸变化,导致坐标也不正确。也请高手指点。
...全文
390 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
mad马达 2011-11-24
  • 打赏
  • 举报
回复
can1.Children.Add(rect);
Canvas.SetLeft(rect, itmTransformedRect.X);
Canvas.SetTop(rect, itmTransformedRect.Y);

Canvas.SetLeft(re, itmTransformedRect.X + 1);
Canvas.SetTop(re, itmTransformedRect.Y + 1);
can1.Children.Add(re);
顺序貌似不一样,先设定位置还是先添加控件,是否有影响呢
mars_bolt 2011-11-02
  • 打赏
  • 举报
回复
哎,这里好冷清啊。难道没人用过。!!!看来csdn的人气真不行啦。
内容概要:本文围绕“单相逆变器闭环逆变电路PWM模型仿真研究”展开,基于Simulink平台构建单相逆变器的闭环控制系统仿真模型,重点研究PWM调制技术在逆变电路的应用与实现。文详细阐述了系统架构设计、电压电流双闭环控制策略的实现原理、控制器参数设计及仿真建模全过程,并通过仿真结果验证了控制方案在动态响应、稳态精度与系统稳定性方面的有效性。同时,文档还涵盖多种电力电子系统典型应用场景,如多类型短路故障仿真(性点不接地、经小电阻接地、经消弧线圈接地等)、软开关技术、微电网能量管理、MPPT控制等,体现出较强的技术综合性和工程实践价值。; 适合人群:电气工程、自动化、电力电子与新能源等相关专业的高校本科生、研究生、科研人员,以及从事电力系统仿真、逆变器设计与新能源并网技术研发的工程技术人员。; 使用场景及目标:①掌握基于Simulink的单相逆变器闭环控制系统建模与PWM仿真方法;②深入理解双闭环控制、SPWM/SVPWM调制、系统稳定性分析等核心技术原理;③为课程设计、毕业设计、科研项目或实际工程开发提供可复用的仿真模型与技术支持; 阅读建议:建议结合文仿真模型动手实践,重点掌握PI控制器参数整定、PWM信号生成机制与仿真结果分析方法,同时可延伸学习文档涉及的软开关、故障仿真、微电网控制等关联技术,以拓展系统级设计能力。

17,748

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 .NET Framework
社区管理员
  • .NET Framework社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧