Используется ли UIElement.RenderTransform TransformToAncestor? - PullRequest
0 голосов
/ 10 марта 2011

Когда вызывается TransformToAncestor, какие матрицы используются для создания результирующего GeneralTransform?Когда я захожу в pdb, я вижу только TransformField с такой подписью:

private static readonly UncommonField<Transform> TransformField = new UncommonField<Transform>();

используется в результирующем GeneralTransform

1 Ответ

2 голосов
/ 10 марта 2011

Ничто не сравнится с рефлектором.Тем более что он все еще бесплатный;)

Код достаточно волосатый, но его можно придерживаться.По сути, он проходит по визуальному дереву и группирует преобразования, но все это намного сложнее, и у меня никогда не было интереса углубляться в это.Посмотрите на Visual.TrySimpleTransformToAncestor для кровавых деталей.

Чтобы ответить на вопрос, конечно, UIElement никогда не используется явно;преобразование извлекается с помощью эффекта (упомянутое вами UncommonField), поэтому я предполагаю, что преобразования в целом применяются как эффекты, поэтому вы можете получить их с помощью этого ярлыка из любого места, но это всего лишь сведения об инфраструктуре и реализации, и яскорее всего неправильно :) 1005 *

...