WPF控件相对位置解析

开发 开发工具
WPF控件相对位置的获取方法在文章中做了一些总结,其中包括:获取元素相对于父控件的位置;获取元素相对于祖宗控件或子孙控件的位置等等。

WPF控件相对位置的获取方法是比较简单的。对于初学者来说,掌握这一技巧的应用,可以帮助以后对WPF的深入学习,而且在实际使用中,这是一个非常常用的方法。#t#

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

1,获取元素相对于父控件的WPF控件相对位置

使用Vector VisualTreeHelper.GetOffset(Visual visual)方法,其会返回visual在其父控件中的偏移量,然后你再将返回值的Vector对象转换成Point对象就可以了。

2,获取元素相对于祖宗控件或子孙控件的WPF控件相对位置

使用元素的 GeneralTransform TransformToAncetor(Visual ancetor)方法与GeneralTransform TransformToDescendent(Visual descendent),其返回元素相对于祖宗或子孙的GeneralTransform myGeneralTransform ,然后再使用Point thePoint= myGeneralTransform.Transform(new Point(0,0))得到的thePoint对象就是要找的值了。

3,获取任意两个元素见的相对WPF控件相对位置

有两种方式:

如果元素是Visual,可以使用元素的GeneralTransform TransformToVisual(Visual visual)方法,然后可以与上文第2点的方法从GeneralTransform 得到thePoint。

如果元素是UIElement,就更简单了,可以使用元素的TranslatePoint(Point pt, UIElement relativeTo)来得到元素上的pt点相对于relativeTo时的值,只有我们传入的pt为(0,0)那么就可以得到元素上(0,0)点的相对位置,即元素的WPF控件相对位置。

责任编辑:曹凯 来源: 博客园
相关推荐

2009-12-28 15:18:29

WPF控件模型

2016-12-16 10:00:27

新华三

2024-04-01 14:18:36

大语言模型自然语言处理

2012-02-08 10:16:43

WPF

2009-12-24 13:46:03

WPF控件

2009-12-28 09:13:50

WPF容器控件

2009-12-24 16:20:43

WPF Tooltip

2009-12-23 18:16:35

WPF布局控件

2009-12-28 09:24:58

WPF线程

2009-12-28 10:40:13

WPF调用Winfor

2009-12-29 14:20:27

WPF路径

2009-12-28 13:57:39

WPF文字

2009-12-23 17:31:56

WPF Style

2009-12-24 14:30:19

WPF MVVM

2009-12-25 17:58:12

WPF进度条

2009-12-23 17:49:28

WPF触发器

2010-08-16 11:28:02

DIV

2024-10-10 08:33:06

2009-12-24 15:04:12

WPF代码解析异常

2009-12-28 16:20:50

WPF内嵌样式
点赞
收藏

51CTO技术栈公众号