有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用。

那么 UWP 如何获得元素坐标?

我提供了一个方法,可以获得元素的坐标。

首先需要获得元素,如果没有获得元素,那么如何得到他的坐标?

假如 xaml 是这样,而我需要获得 MainTextBlock 相对窗口的坐标

    <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"><TextBlock x:Name="MainTextBlock" Margin="10,10,10,10" Text="Hello" /></Grid>

那么获得元素绝对坐标可以这样写,绝对坐标的意思就是元素相对窗口的坐标。

         public MainPage(){this.InitializeComponent();var t = MainTextBlock.TransformToVisual(Window.Current.Content);Point screenCoords = t.TransformPoint(new Point(0, 0));}

上面代码就可以获得元素坐标,坐标相对于窗口

那么如何获得他相对其他元素的坐标?

假如需要获得元素相对他的上坐标,这时可以看下面代码

            var t = MainTextBlock.TransformToVisual((UIElement)MainTextBlock.Parent);Point screenCoords = t.TransformPoint(new Point(0, 0));

于是可以看到 TransformToVisual 传入的是哪个元素,就是获得相对于这个元素的坐标。

获得元素的坐标有什么用?可以用在如 Flyout的定位,如果使用了 ToggleButton ,他没有自己 Flyout ,所以就需要在其他地方定义一个 Flyout 然后通过获得控件位置显示出来。如何指定 Flyout 的位置参见 win10 uwp 右击浮出窗在点击位置

所以就可以让浮出窗在需要显示的按钮上显示,下面的图片是我偷一个大神的,他就是使用这个方法做出来。

参见:http://stackoverflow.com/questions/12387449/how-to-get-the-absolute-position-of-an-element/12388558#12388558


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。欢迎转载、使用、重新发布,但务必保留文章署名林德熙(包含链接:http://blog.csdn.net/lindexi_gd ),不得用于商业目的,基于本文修改后的作品务必以相同的许可发布。如有任何疑问,请与我联系。

win10 uwp 获得元素绝对坐标相关推荐

  1. C# dotnet 使用 OpenXml 解析 PPT 元素的坐标和宽度高度

    在阅读本文之前,我期望你能了解基础的 PPT 解析内容,或看我的入门级博客.本文将告诉大家如何从 PPT 里面解析出通用元素的 x 和 y 的值,以及元素的宽度和高度的值 在开始之前请看 C# dot ...

  2. win10 uwp DataContext

    本文告诉大家DataContext的多种绑法. 适合于WPF的绑定和UWP的绑定. 我告诉大家很多个方法,所有的方法都有自己的优点和缺点,可以依靠自己喜欢的用法使用.当然,可以在新手面前秀下,一个页面 ...

  3. Win10 UWP开发中的重复性静态UI绘制小技巧 1

    Win10 UWP开发中的重复性静态UI绘制小技巧 1 原文:Win10 UWP开发中的重复性静态UI绘制小技巧 1 介绍 在Windows 10 UWP界面实现的过程中,有时会遇到一些重复性的.静态 ...

  4. win10 uwp 使用 Matrix3DProjection 进行 3d 投影

    win10 uwp 使用 Matrix3DProjection 进行 3d 投影 原文:win10 uwp 使用 Matrix3DProjection 进行 3d 投影 版权声明:博客已迁移到 htt ...

  5. win10 uwp 如何判断一个对象被移除

    win10 uwp 如何判断一个对象被移除 原文:win10 uwp 如何判断一个对象被移除 有时候需要知道某个元素是否已经被移除,在优化内存的时候,有时候无法判断一个元素是否在某个地方被引用,就需要 ...

  6. win10 uwp 如何使用DataTemplate

    这是数据模板,一般用在数组的绑定,显示数组中的元素. 假如我们有一个列表,列表里是书,包括书名.作者.还有出版,那么我们只有源信息,如何把它显示到我们的ListView,就需要DataTemplate ...

  7. win10 uwp 通过 Win2d 完全控制笔迹绘制逻辑

    本文来告诉大家如何通过 Win2d 完全控制笔迹绘制逻辑,本文适合用来实现复杂的自定义逻辑,可以完全控制笔迹的行为.包括在书写过程中切换模式,如进行手势擦除切换为橡皮擦模式 本文提供的方法适合用来做复 ...

  8. Win32 C++项目移植到 Win10 UWP

    本文可能对谁有帮助 如果你正在做将现有的Win32 静态库 或 DLL 工程移植到Win10 UWP(通用 Windows) 环境,这篇文章可能会对你有帮助. 概述 在VS2015的 新建项目 -&g ...

  9. win10 UWP 应用设置

    win10 UWP 应用设置 简单的把设置需要的,放到微软自带的LocalSettings LocalSettings.Values可以存放几乎所有数据 如果需要存放复合数据,一个设置项是由多个值组成 ...

最新文章

  1. kafka-2.11-2.3.0版本配置文件参数详解_Kafka版本特性总结
  2. 线程条件控制实现线程的同步
  3. Java 解析XML的几种方法
  4. MySQL5.5多实例编译安装——mysqld_multi
  5. browserquest php安装,请问一下browserquest-php项目换成GatewayWorker的形式需要怎么部署worker...
  6. 实例37:python
  7. 网页ui设计模板素材|液体流动效果!
  8. 使用CALayer设置图像边框
  9. 05-Vue报错 Uncaught SyntaxError: Identifier has already been declared和路由
  10. 使用JGit报错:Algorithm negotiation fail 的解决方案
  11. cesium添加填充_cesium实现注记功能
  12. 插入外部dwg文件,避免外部参照
  13. execl 如何同时冻结一行与一列
  14. MySQL获取季初日期_用于取得当前日期相对应的月初,月末,季初,季末,年初,年末时间...
  15. 微信小程序获取输入框(input)内容
  16. 根据卫星仰角和方位角使用html5绘制天空图(投影图)
  17. 大数据时代之市场调研的必要性
  18. Linux下的目录树
  19. 云计算原来是IT界工资最高的
  20. cloc JAVA文件_Mac下统计任意文件夹中代码行数的工具——cloc

热门文章

  1. Go实现UDP-IP-Data的IP数据报生成
  2. 读万卷书,写万行代码
  3. 数码相片转传统相片尺寸表
  4. 【51码儿】【Linux学习笔记】第1章 安装、登录CentOS7
  5. 前台离岗提示语_前台卫生温馨提示语
  6. 逻辑卷管理器(LVM) 之 创扩缩秘籍
  7. 深度学习(七)——图像验证码破解(数字加减验证码)
  8. 开发笔记之数字证书(一):数字证书介绍
  9. 乐鑫Esp32学习之旅14 esp32 sdk编程实现门户强制认证,连接esp32热点之后,自动强制弹出指定的登录html界面。(附带Demo)
  10. ML:机器学习模型的稳定性分析简介、常见的解决方法之详细攻略