在Silverlight的Layout中,控件往往是相对放置,例如Grid/Border/ListBox等,这个时候就是要取得子控件的绝对位置(location)怎么办?使用场景很多,例如,我们点击一个按钮,动画打开一个弹出窗口,关闭那个窗口,能够动画缩小到按钮的位置 - 这样我们就要取得按钮的绝对位置。可以用GeneralTransform.Transform方法来获得,当然首先要用UIElement.TransformToVisual来获得相对于祖宗的位置。代码如下:

   1: GeneralTransform gt = yourUIElment/*控件*/.TransformToVisual(Application.Current.RootVisual as UIElement);
   2: Point offset = gt.Transform(new Point(0, 0));
   3: double controlTop = offset.Y;
   4: double controlLeft = offset.X;

注:如果把上面的Application.Current.RootVisual换成其他元素就可以获得元素相对于其他元素的相对位置(Location)。

对了,前提是你要先找到那个元素,可以用FindName方法,或者遍历Silverlight对象树也可以,如果用Template还要用GetTemplateChild。详情见Silverlight对象树MSDN。

[Silverlight入门系列]用TransformToVisual和Transform取得元素绝对位置(Location)相关推荐

  1. Silverlight入门系列]使用MVVM模式

    [Silverlight入门系列]使用MVVM模式(9): 想在ViewModel中控制Storyboard动画? (2011-09-07 16:12) [Silverlight入门系列]使用MVVM ...

  2. 《北风网网友录制Silverlight入门系列视频教程》共23课时/更新完毕[压缩包]

    中文名: 北风网网友录制Silverlight入门系列视频教程 资源格式: 压缩包 版本: 共23课时/更新完毕 发行日期: 2012年03月05日 地区: 大陆 对白语言: 普通话 文字语言: 简体 ...

  3. [Silverlight入门系列]实现局部元素全屏(Element部分全屏)

    本文不讨论Silverlight全屏模式的实现,有关实现这个,可以参考TerryLee的这篇文章,核心代码就是这行: Application.Current.Host.Content.IsFullSc ...

  4. [Silverlight入门系列]使用MVVM模式(6):使用Behavior

    Behavior把一些常用的行为封装成可重复使用的组件(Component),在理想状况下,Designer(设计师)或domain expert(特定领域的专家,例如财会人员.HR人员.或MIS)甚 ...

  5. Silverlight入门系列]使用MVVM模式(1):MVVM核心概念

    MVVM模式是Model.View.ViewModel的简称,最早出现在WPF,现在Silverlight中也使用该模式,MVVM模式是对MVC模式的变种.哪儿变了?我认为MVVM和MVC的主要变化在 ...

  6. [Silverlight入门系列]使用MVVM模式(1):MVVM核心概念

    编辑器加载中...MVVM模式是Model.View.ViewModel的简称,最早出现在WPF,现在Silverlight中也使用该模式,MVVM模式是对MVC模式的变种.哪儿变了?我认为MVVM和 ...

  7. [Silverlight入门系列]使用MVVM模式(3):Model的INotifyPropertyChanged接口实现

    当客户端绑定一个数据模型以后,数据模型变化以后可以自动通知客户端更新界面显示,这就是INotifyPropertyChanged接口要做的工作.INotifyPropertyChanged 接口用于向 ...

  8. [Silverlight入门系列]使用MVVM模式(7):ViewModel的INotifyPropertyChanged接口实现

    本文说说ViewModel的这个INotifyPropertyChanged接口可以用来做啥? 举例1:我有个TabControl,里面放了很多View,每个由ViewModel控制,我想是想TabS ...

  9. [Silverlight入门系列]动态创建控件和绑定

    http://www.cnblogs.com/Mainz/archive/2011/10/04/2198924.html 转载于:https://www.cnblogs.com/Ken-Cai/arc ...

最新文章

  1. 添加议题模块html,WordPress 技巧:为评论模块增加更多 HTML 标签支持
  2. Indigo | Indigo(Python)简介、安装与入门
  3. LSPCI具体解释分析
  4. Java根据模板创建excel文件
  5. Qt之debug和写log文件
  6. 20_Android中apk安装器,通过WebView来load进一个页面,Android通知,程序退出自动杀死进程,通过输入包名的方式杀死进程
  7. 深入理解alias, alias_method和alias_method_chain
  8. 对话苹果公司的一号员工Bill Fernandez
  9. 基于Spring MVC的Excel文件上传
  10. Android Realm(数据库)
  11. 命令行_Pytest之命令行执行
  12. MATLAB图像处理:一分钟去除图片中的雾霾
  13. 卸载不了mysql2008_卸载SQL2008遇到问题(重启计算机失败、找不到SQL卸载程序)的解决办法...
  14. 疯狂Java讲义(一)
  15. 量化策略:如何利用死猫反弹获利?
  16. 2021年中国棘轮手柄市场趋势报告、技术动态创新及2027年市场预测
  17. 2.CUDA 编程手册中文版---编程模型
  18. HHT和FFT的对比
  19. Bitcoin+STARK: ZeroSync Khepri
  20. luogu P1332 血色先锋队[bfs]

热门文章

  1. python编程从入门到实践书中出错的地方_读书笔记「Python编程:从入门到实践」_10.文件和异常...
  2. 需求跟踪矩阵模板_大连电视台采用无跟踪虚拟技术升级多套节目
  3. rockemq 发送延迟消息_58分布式消息队列WMB设计与实践
  4. 在训练期间保存检查点
  5. 单词字符的one-hot编码
  6. oracle列传行函数,oracle行转列和列转行(pivot 和 unpivot 函数,wm_concat函数 )
  7. oracle 表空间 归档,oracle数据库表空间及归档
  8. 动手学深度学习Pytorch Task03
  9. 如何选择神经网络的超参数
  10. 光照强度曲线图android,有关光合作用的曲线图的分析(一) - xyz的日志 - 网易博客...