เพิ่มวิธีนี้ในคลาสแบบคงที่:
public static Rect GetAbsolutePlacement(this FrameworkElement element, bool relativeToScreen = false)
{
var absolutePos = element.PointToScreen(new System.Windows.Point(0, 0));
if (relativeToScreen)
{
return new Rect(absolutePos.X, absolutePos.Y, element.ActualWidth, element.ActualHeight);
}
var posMW = Application.Current.MainWindow.PointToScreen(new System.Windows.Point(0, 0));
absolutePos = new System.Windows.Point(absolutePos.X - posMW.X, absolutePos.Y - posMW.Y);
return new Rect(absolutePos.X, absolutePos.Y, element.ActualWidth, element.ActualHeight);
}
ตั้งค่าrelativeToScreen
พารามิเตอร์เป็นtrue
ตำแหน่งจากมุมบนซ้ายของทั้งหน้าจอหรือไปที่false
ตำแหน่งจากมุมบนซ้ายของหน้าต่างแอปพลิเคชัน