博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Silverlight 获取控件间的相对位置
阅读量:6976 次
发布时间:2019-06-27

本文共 895 字,大约阅读时间需要 2 分钟。

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)点的相对位置,即元素的相对位置

转载于:https://www.cnblogs.com/shenfengok/archive/2012/01/30/2331659.html

你可能感兴趣的文章
eclipse workspace
查看>>
vue 引用公共方法(例子:截取字符串固定字数,其余显示...)
查看>>
毫秒数转日期
查看>>
访问修饰符
查看>>
【FLEX教程】#008 开发中的问题笔记(慢更…)
查看>>
JQuery+PHP的AJAX封装
查看>>
爬虫大作业-爬区a9vg电玩部落ps4专区
查看>>
[Android Memory] Android系统中查看某个应用当前流量的方法
查看>>
Android的图形显示原理(GDI)一
查看>>
CORS跨域请求限制-options预检请求
查看>>
第四章 软件架构演化
查看>>
Vsftp给每个用户建立单独的配置文件
查看>>
MySQL——修改root密码的4种方法(以windows为例)
查看>>
sublime搜索和替换--多文件搜索替换
查看>>
(七):处理MFC
查看>>
【算法拾遗】大数相加(不开辟额外空间)
查看>>
Python正则表达式精讲
查看>>
Python——Beautiful Soup 4.2.0 中文文档
查看>>
Python字符串拼接、截取及替换方法总结
查看>>
3.Session安装配置
查看>>