/// <summary> /// Returns a transform that can be used to transform coordinates from this /// node to the specified descendant, or null if the transform from descendant to "this" /// is non-invertible. It allows 3D to be between the 2D nodes. /// </summary> /// <exception cref="ArgumentException"> /// If the reference Visual is not a ancestor of the descendant Visual. /// </exception> /// <exception cref="ArgumentNullException">If the descendant argument is null.</exception> /// <exception cref="InvalidOperationException">If the Visuals are not connected.</exception> public GeneralTransform TransformToDescendant(Visual descendant) { if (descendant == null) { throw new ArgumentNullException("descendant"); } VerifyAPIReadOnly(descendant); return descendant.InternalTransformToAncestor(this, true); }