Эта публикация из серии ответы на вопросы с MSDN. Вот только на вопрос я уже ответил, но вот в топике был задан вопрос: «А как вы даете ответы?». Вопрос переформулирован мной, по ссылке он в полном виде можно сходить и посмотреть. Под катом я расскажу как я отвечал конкретно на оригинальный вопрос из топика и вообще как я действую столкнувшись с интересной проблемой.


Поехали.
Проблема была в том, что есть Rectangle. К нему применено несколько трансформаций. Одна из трансформаций RotateTransform на некоторый угол. Как, например, при попадании мышки на Rectangle узнать угол поворота. Вот так выглядел вопрос (картинка кликабельна):

Т.к. из текста вопроса проблема не понятна, то создал пустой проект, скопировал в него XAML и код чтобы посмотреть что происходит. У меня монитор меньше 21000 пикселей, поэтому прямоугольник после запуска приложения я не увидел. Пришлось менять размеры и положение.
Когда же прямоугольник стал виден, то добавил в метод точку останова:

Навел мышку, начал отладку по шагам и увидел, что RenderTransform содержит экземпляр класса TransformGroup и, само собой, при приведении к типу RotateTransform будет null:

Дальше все просто. Посмотрел, что свойство RenderTransform типа Transform, а у него нет ни Items, ни Children. Смотрел просто, донаборщиком:

Ну а раз нет, то значит придется явно приводить к типу TransformGroup. У которого есть свойство Children.
Дальше все просто, по XAML видно, что в Children есть три трансформации, т.к. нам нужна трансформация известного типа, то применяем из Linq метод OfType (пользуюсь им достаточно часто, поэтому даже сомнений не было что здесь использовать). Ну а дальше все просто. По конкретному примеру все.

В общем случае, когда хочу что-то сделать, то уже сразу, исходя из предыдущего опыта, есть несколько идей как это сделать. Дальше смотрю какие есть методы, классы что-то через MSDN, что-то просто в донаборщике иногда переходя по F12 к сигнатуре. Отладчик очень часто подсказывает где какой тип, тоже можно воспользоваться. Ну а если все равно не получается или выскакивает какая-нибудь заковыристая ошибка, то ищу поисковиками. Очень часто решение находится на MSDN, Stackoverflow или в блогах. Ответ в большинстве случаев будет на английском, поэтому решив проблему, бывает, пишу статью в этот бложик, вдруг кому пригодится. Совсем редко бывают ситуации когда все уперся, не могу ничего путного найти/придумать. Ок, тогда пытаюсь реализовать другой способ решения. В описанной выше задаче, это могло быть хранение углов трансформации во ViewModel или Model с прокидыванием во View через Binding. При этом подходе с визуальными компонентами вообще дела можно не иметь, т.к. все значения у меня уже доступны бизнес-логике приложения.