[WPF]获取控件间的相对位置
周银辉
我们知道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)点的相对位置,即元素的相对位置
[WPF]获取控件间的相对位置相关推荐
- ios 获取控件高度
2019独角兽企业重金招聘Python工程师标准>>> 1.ios 获取控件相对屏幕的位置 需要获取的对象为view1,则该视图相对屏幕的位置可使用下面方法实现: UIWindow ...
- JS 获取控件的绝对位置
JS 获取控件的绝对位置 js获取控件的绝对位置 已经控件宽度和高度 2010-08-11 13:07 //获取控件左绝对位置 function getAbsoluteLeft(objectId) { ...
- JAVASCRIPT 提示信息 主要是使用了获取控件的位置进行定位
JAVASCRIPT 提示信息 主要是使用了获取控件的位置进行定位 <%@ Page Language="C#" AutoEventWireup="true&quo ...
- 【转】WPF默认控件模板的获取和资源词典的使用
一.获取默认的控件模板 WPF修改控件模板是修改外观最方便的方式,但是会出现不知道原来的控件的模板长什么样,或者如何在原有控件模板上修改的,下面就分享了获取某控件默认控件模板的方法(以控件Button ...
- WPF(一) WPF基本控件与布局
WPF(Windows Presentation Foundation)是微软推出的基于Windows的用户界面框架,中文译为"Windows呈现基础",属于.NET Fram ...
- android自定义view获取控件,android 自定义控件View在Activity中使用findByViewId得到结果为null...
转载:http://blog.csdn.net/xiabing082/article/details/48781489 1. 大家常常自定义view,,然后在xml 中添加该view 组件..如果在 ...
- mfc在两个控件间连线
新建一个对话框工程: 添加2个按钮,ID分别为IDC_ONE.IDC_TWO,再添加一个 GO!按钮: 为 GO!按钮添加单击消息处理函数: 单击代码: void CTwotwoDlg::OnButt ...
- 正则表达式——WPF输入控件TextBox 限定输入特定字符
正则表达式--WPF输入控件TextBox 限定输入特定字符 原文:正则表达式--WPF输入控件TextBox 限定输入特定字符 概念: 正则表达式是对字符串操作的一种逻辑公式, 就是用事先定义好的一 ...
- android 获取控件在屏幕中的坐标
今天,简单讲讲android如何获取控件在屏幕中的坐标. 这个其实也很简单,但是昨天做一个功能时,需要功能控件的坐标做一些逻辑操作时,居然不知道怎么做.所以在网上查找了资料后,解决了这个问题.这里记录 ...
最新文章
- Bitcoin Core开发者:提倡使用信用卡进行日常开销而非比特币
- python花钱培训值吗-python培训需要花多少钱?
- Android studio java文件显示变为红色J
- 多个div并排居中显示
- RabbitMQ 高可用集群搭建及电商平台使用经验总结
- e记法 python 底数_备战python二级
- 百度图床带数据库版本源码支持获取外链
- xpath的一些测试
- camunda流程定义表无数据_【经验】数据可视化分析操作指南
- 关于绕开百度文库复制限制的那档子事
- AnyLogic简介
- 如何一站式高效管理固定资产?
- Keil安装(带安装软件)
- Android开发之WebDav
- 奥维互动地图加载地球引擎Google Earth Engine(GEE)1984-2022 地球卫星资源 亲测有效,路亚 钓鱼 露营 水下结构 水文 温湿度 地貌变化 大数据AI分析 神器
- 解析 | 模-数(A/D)转换器
- BufferedImage缩小图片大小
- Graylog服务器docker安装
- 这帮死磕技术的理工男造了一支笔
- NTP网络时钟同步系统技术发展前景
热门文章
- python 基础篇(一)--linux命令篇
- hdu 5444 Elven Postman(根据先序遍历和中序遍历求后序遍历)2015 ACM/ICPC Asia Regional Changchun Online...
- FPGA机器学习之stanford机器学习第三堂1
- ios开发之plist 的文件的读写以及沙盒容器路径打印
- 外部网络如何获取网口打印机的ip地址_Win7如何连接网络打印机?详细的新手DIY教程...
- 利用OpenCvSharp处理图片并在winformd的pictureBox中显示
- GoogLeNet系列解读
- xuniji查看php.ini,虚拟机 phpstorm xdebug配置
- matlab 设计 18db,基于混沌理论的微弱MPSK信号解调方案设计
- SpringBoot是如何解析参数的