2018-8-10-win10-uwp-获得元素绝对坐标
2024-09-05 20:40:02
title | author | date | CreateTime | categories |
---|---|---|---|---|
win10 uwp 获得元素绝对坐标
|
lindexi
|
2018-08-10 19:16:51 +0800
|
2018-2-13 17:23:3 +0800
|
Win10 UWP
|
有时候需要获得一个元素,相对窗口的坐标,在修改他的位置可以使用。
那么 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 右击浮出窗在点击位置
所以就可以让浮出窗在需要显示的按钮上显示,下面的图片是我偷一个大神的,他就是使用这个方法做出来。
最新文章
- JavaScript中数组迭代方法(jquery)
- ubuntu 跟xshell的问题
- JS/jquery获取iframe内部元素和ifame中获取外部元素精华
- 关于tp.5.0角色管理导致的创建角色登陆报错问题解决!
- Excel中设置下拉列表的来源怎么选择其他工作表的内容
- 初识API函数
- How about xlogs are missing and xlogs are deleted
- StringUtils中 isEmpty 和isBlank的区别
- mybatis使用
- Keil C51中函数指针的使用
- 经验36--C#无名(大事,物...)
- ubuntu 14.04 rabbitmq集群部署
- C 头文件、宏、编译问题
- FFM及DeepFFM模型在推荐系统的探索及实践
- Appium Desktop-Permission to start activity denied.
- 8个超实用的jQuery插件应用
- 字典和json 的区别 和转换
- 机器学习实战(Machine Learning in Action)学习笔记————04.朴素贝叶斯分类(bayes)
- ArcMap中条件语句的bug
- Dijkstra、Bellman_Ford、SPFA、Floyd算法复杂度比较