WPF中获取控件之间的相对位置
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)点的相对位置,即元素的相对位置
原文地址:http://www.cnblogs.com/zhouyinhui/archive/2008/03/20/1115132.html
WPF中获取控件之间的相对位置的更多相关文章
- WPF中获取控件默认样式和模板XML
从微软官方找这个东西甚是困难,似乎根本没有提供.网上说因为版本问题,很难找到,但通过代码却可以轻易获得.经测试,生成的样式文件非常完美,完全不用修改即可应用. 代码如下: public static ...
- 浅谈WPF中对控件的位图特效(WPF Bitmap Effects)
原文:浅谈WPF中对控件的位图特效(WPF Bitmap Effects) -------------------------------------------------------------- ...
- [WPF]获取控件间的相对位置
原文:[WPF]获取控件间的相对位置 [WPF]获取控件间的相对位置 周银辉 我们知道WPF有着比较灵活的布局方式,关于某个控件的坐标,Canv ...
- 示例:WPF中Slider控件封装的缓冲播放进度条控件
原文:示例:WPF中Slider控件封装的缓冲播放进度条控件 一.目的:模仿播放器播放进度条,支持缓冲任务功能 二.进度: 实现类似播放器中带缓存的播放样式(播放区域.缓冲区域.全部区域等样式) 实现 ...
- WPF中Ribbon控件的使用
这篇博客将分享如何在WPF程序中使用Ribbon控件.Ribbon可以很大的提高软件的便捷性. 上面截图使Outlook 2010的界面,在Home标签页中,将所属的Menu都平铺的布局,非常容易的可 ...
- WPF中查找控件的扩展类
在wpf中查找控件要用到VisualTreeHelper类,但这个类并没有按照名字查找控件的方法,于是搜索网络,整理出下面这个类,感觉用起来很是方便. 贴出来,供大家参考. /// <summa ...
- WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书
原文:WPF中Popup控件在Win7以及Win10等中的对齐点方式不一样的解决方案 - 简书 最近项目中使用弹出控件Popup,发现弹出框的对齐方式在不同的系统中存在不同(Popup在win10上是 ...
- WPF中Image控件的Source属性
原文:WPF中Image控件的Source属性 imgBook 是一个Image控件,在后台代码中我想给它指定Source的属性.我先如下方式进行: Uri uri = new Uri(strImag ...
- WPF中PasswordBox控件的Password属性的数据绑定
原文:WPF中PasswordBox控件的Password属性的数据绑定 英文原文:http://www.wpftutorial.net/PasswordBox.html 中文原文:http://bl ...
随机推荐
- yii 的mvc工作流
Yii 使用了 Web 开发中广泛采用的模型-视图-控制器(MVC)设计模式. MVC的目标是将业务逻辑从用户界面的考虑中分离,这样开发者就可以更容易地改变每一部分而不会影响其他. 在 MVC中,模型 ...
- UML--一些图
通过UML来表示汽车,简洁明了. 统一建模语言--UML. 参与者Actor,参与者代表了现实世界的人.人. 用例use case,就是参与者要做什么并且获得什么.事. 业务场景,用例场景.规则. 业 ...
- 精确覆盖DLX算法模板
代码 struct DLX { int n,id; int L[maxn],R[maxn],U[maxn],D[maxn]; ]; ) //传列长 { n=nn; ;i<=n;i++) U[i] ...
- yumdebug
- nodejs学习笔记之安装、入门
由于项目需要,最近开始学习nodejs.在学习过程中,记录一些必要的操作和应该注意的点. 首先是如何安装nodejs环境?(我用的是windows 7环境,所以主要是windows 7的例 ...
- IT人员应该怎么跳槽
中国的程序员只有两个状态,刚跳槽和准备跳槽. 中国IT行业的快速发展对IT从业人员的需求不断扩大,记得08年刚毕业的时候,在帝都找一个3k的工作都让我特别满足,现在仅能写出”hello world ...
- 最小费用最大流模板 poj 2159 模板水题
Going Home Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 15944 Accepted: 8167 Descr ...
- javascript 执行环境,变量对象,作用域链
前言 这几天在看<javascript高级程序设计>,看到执行环境和作用域链的时候,就有些模糊了.书中还是讲的不够具体. 通过上网查资料,特来总结,以备回顾和修正. 要讲的依次为: EC( ...
- [Hapi.js] Using the response object
When you use reply method: let resp = reply('hello world') It actually return an response object. By ...
- springmvc访问路径传递参数
@RequestMapping(value = "/{path}/toList") public String toList(@PathVariable String path) ...