private static Point ApplyVisualTransform(Visual v, Point pt, bool inverse) { Matrix m = GetVisualTransform(v); if (inverse) { m.Invert(); } return m.Transform(pt); }