1. 程式人生 > >XAML: 獲取元素的位置

XAML: 獲取元素的位置

homepage 方法 需求 href con 所有 aml pre bubuko

原文:XAML: 獲取元素的位置

在之前討論 ListView 滾動相關需求的文章中(UWP: ListView 中與滾動有關的兩個需求的實現)曾經提到了獲取元素相對位置的方法,即某元素相對另一元素的位置。現將所有相關方法再作整理,並且包括 UWP 與 WPF 兩者的實現,如下:

技術分享圖片

WPF(兩種方式):

GeneralTransform generalTransform = controlB.TransformToVisual(controlA);
Point point = generalTransform.Trsnform(new Point());
Point point = controlB.TranslatePoint(new
Point(), controlA);

UWP:

GeneralTransform generalTransform = controlB.TransformToVisual(controlA);
Point point = generalTransform.TrsnformPoint(new Point());

這裏需要註意的一點時,控件的 Margin 值是包括在計算結果之內的,比如 ControlB 包括 Margin 值,則其向上、向左的 Margin 值會被計算在最終結果內。

XAML: 獲取元素的位置