Muchas veces necesitamos obtener la posición de un elemento dentro de un control, pero ésta varia dependiendo de los controles «padres» y otros contenidos que pudieran haber en el XAML. Para poder conocer esta posición programaticamente se puede utilizar el siguiente código:
GeneralTransform objGeneralTransform = myObject.TransformToVisual(Application.Current.RootVisual as UIElement); Point point = objGeneralTransform.Transform(new Point(0, 0)); double topPosition = point.Y; double leftPosition = point.X;
Espero que les sea de utilidad.