You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

UWP中对应.NET UIElement.TranslatePoint的等效方法是什么?

在UWP中获取UIElement相对于容器的位置方法

嗨,刚好我对这个场景很熟悉!在WPF里你用UIElement的相关方法获取相对位置,放到UWP里的话,**UIElement.TransformToVisual()**就是你要找的等效方法,它能帮你计算元素相对于另一个元素(也就是它的容器)的坐标。

具体步骤和用法是这样的:

  • 首先确定两个核心元素:你要获取位置的目标UIElement(比如叫targetElement),以及它所在的容器元素(比如叫container)
  • 调用目标元素的TransformToVisual()方法,传入容器作为参数,得到一个GeneralTransform对象
  • 调用这个变换对象的TransformPoint()方法,传入new Point(0,0)(也就是目标元素自身的左上角原点),得到的Point就是目标元素左上角相对于容器的坐标

给你一段示例代码参考:

// 定义你的目标元素和容器
UIElement targetElement = ...; // 你要定位的元素
UIElement container = ...; // 目标元素的父容器

// 获取变换关系
GeneralTransform elementToContainerTransform = targetElement.TransformToVisual(container);
// 计算相对位置
Point relativePosition = elementToContainerTransform.TransformPoint(new Point(0, 0));

// 现在你可以用这个位置来叠加图像了,比如如果用Canvas布局的话:
overlayImage.Canvas.Left = relativePosition.X;
overlayImage.Canvas.Top = relativePosition.Y;

另外补充一点:如果你的容器不是直接父元素,而是更上层的容器,这个方法也同样适用,它会自动计算整个视觉树里的坐标变换~

内容的提问来源于stack exchange,提问作者r.t.s.

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 08:36:12