private static Transform TransformToAncestorHelper(FrameworkElement element, DependencyObject parent, DependencyProperty property) { Matrix matrix = Matrix.Identity; foreach (DependencyObject dependencyObject in VisualTreeExtensions.GetVisualAncestorsAndSelf((DependencyObject)element)) { if (dependencyObject != parent) { Transform thisObject = (Transform)dependencyObject.GetValue(property); if (thisObject != null) { matrix = MatrixHelper.Multiply(matrix, TransformExtensions.GetMatrix(thisObject)); } } else { break; } } return((Transform)TransformExtensions.MakeMatrixTransform(matrix)); }