Silverlight 获取控件间的相对位置

Silverlight 获取控件间的相对位置,第1张

概述Silverlight 获取控件间的相对位置 copy而来 我们知道WPF有着比较灵活的布局方式,关于某个控件的坐标,Canvas中的元素最简单,我们可以直接通过其GetLeft()与GetTop方法来获取,但其它布局面板中的,以及存在于不同布局面板中的元素中间的相对位置就比较让我们头疼了,其实有简单方法的,不知你有没发现。 1,获取元素相对于父控件的位置 使用Vector VisualTreeH Silverlight 获取控件间的相对位置 copy而来

我们知道WPF有着比较灵活的布局方式,关于某个控件的坐标,Canvas中的元素最简单,我们可以直接通过其Getleft()与Gettop方法来获取,但其它布局面板中的,以及存在于不同布局面板中的元素中间的相对位置就比较让我们头疼了,其实有简单方法的,不知你有没发现。

1,获取元素相对于父控件的位置
使用Vector VisualTreeHelper.Getoffset(Visual visual)方法,其会返回visual在其父控件中的偏移量,然后你再将返回值的Vector对象转换成Point对象就可以了

2,获取元素相对于祖宗控件或子孙控件的位置
使用元素的 Generaltransform transformToAncetor(Visual ancetor)方法与Generaltransform transformToDescendent(Visual descendent),其返回元素相对于祖宗或子孙的Generaltransform myGeneraltransform ,然后再使用Point thePoint= myGeneraltransform.transform(new Point(0,0))得到的thePoint对象就是要找的值了。

3,获取任意两个元素见的相对位置有两种方式:如果元素是Visual,可以使用元素的Generaltransform transformToVisual(Visual visual)方法,然后可以与上文第2点的方法从Generaltransform 得到thePoint如果元素是UIElement,就更简单了,可以使用元素的TranslatePoint(Point pt,UIElement relativeTo)来得到元素上的pt点相对于relativeTo时的值,只有我们传入的pt为(0,0)那么就可以得到元素上(0,0)点的相对位置,即元素的相对位置

总结

以上是内存溢出为你收集整理的Silverlight 获取控件间的相对位置全部内容,希望文章能够帮你解决Silverlight 获取控件间的相对位置所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/web/1075156.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存