求 获取 可移动控件的坐标?

dui_cky 2010-07-29 11:47:25
RT: 加了个 行为
Testbox tbSample = new textbox();
MouseDragElementBehavior m = new MouseDragElementBehavior();
Interaction.GetBehaviors(tbSample).Add(m);

当tbSample 移动以后 如何获取 它的坐标?
tbSample.GetValue(Canvas.TopProperty),tbSample.GetValue(MouseDragElementBehavior.XProperty),tbSample.Margin.Top.ToString() 这三种方法行不通。。 求正解?
...全文
189 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
yuwa227 2010-12-08
  • 打赏
  • 举报
回复
学习学习,正是我要找的问题
dui_cky 2010-07-30
  • 打赏
  • 举报
回复
[Quote=引用楼主 dui_cky 的回复:]
RT: 加了个 行为
Testbox tbSample = new textbox();
MouseDragElementBehavior m = new MouseDragElementBehavior();
Interaction.GetBehaviors(tbSample).Add(m);

当tbSample 移动以后 如何获取 它的坐标?
tbSample.GetVal……
[/Quote]
搞定了 谢了!!
dui_cky 2010-07-30
  • 打赏
  • 举报
回复

冷老大,别的不说,谢了! 你对silverlight社区做的贡献大家都是有目共睹的
我想大家心里都非常非常感激你!!!
Sunpire 2010-07-30
  • 打赏
  • 举报
回复
使用坐标变换,正解。
不过并非都要相对于 Application.Current.RootVisual 来进行坐标变换的, 相对于任何一个父容器或者是 任何UIElement 都可以进行坐标变换。

或者转换为 MatrixTransform

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

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

得到 transform.Matrix.OffsetX 、transform.Matrix.OffsetY
jv9 2010-07-30
  • 打赏
  • 举报
回复
使用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;

8,735

社区成员

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

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