如何获取TextBlock 在Canvas中的位置

cfsjjjj 2010-08-06 10:24:12

TextBlock tx=new TextBlock ();
tx.RenderTransform = new TranslateTransform(){ X =100, Y = 200};

现在这么能获取x 和y的值啊!
...全文
170 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
dui_cky 2010-08-07
  • 打赏
  • 举报
回复
使用offset获取位置:
GeneralTransform mygt = this.TransformToVisual(Application.Current.RootVisual as UIElement);
Point offset = mygt.Transform(new Point(0, 0));
double controlTop = offset.Y;
double controlLeft = offset.X;

//Application.Current.RootVisual 是你相对 的控件
或者

或者转换为 MatrixTransform

MatrixTransform transform = source.TransformToVisual(container) as MatrixTransform;

其中 source 为 UIElement ,为要取得坐标的控件;
container 为 UIElement ,为 source 的参照物,一般可以取上级容器。

得到 transform.Matrix.OffsetX 、transform.Matrix.OffsetY
老Key 2010-08-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 dui_cky 的回复:]
使用offset获取位置:
GeneralTransform mygt = this.TransformToVisual(Application.Current.RootVisual as UIElement);
Point offset = mygt.Transform(new Point(0, 0));
double controlTop = offset.Y;
double cont……
[/Quote]嗯,,说的挺不错的。。
cfsjjjj 2010-08-06
  • 打赏
  • 举报
回复
一天了 怎么都没人啊!!!

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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