WPF превращает движение - PullRequest
1 голос
/ 23 марта 2010

Я сделал некоторые преобразования для моего объекта на холсте, такие как вращение и преобразование.

Как я могу сохранить новые координаты после этого? Если я попытаюсь переместить объект вокруг, он будет использовать только новые преобразования.

1 Ответ

0 голосов
/ 23 марта 2010

Из того, что я вижу, это довольно нетривиально. Как правило, вы захотите, чтобы WPF обрабатывал такие вещи для вас.

Тем не менее, вот что я смог придумать, основываясь на информации отсюда . Дан текстовый блок "textBlockName":

HwndSource hwndSource = PresentationSource.FromVisual(textBlockName) as HwndSource;

Visual root = hwndSource.RootVisual;

// Translate the point from the visual to the root.

GeneralTransform transformToRoot = textBlockName.TransformToVisual(root);

Point p = new Point(0,0);

p = transformToRoot.Transform(p);

p = hwndSource.CompositionTarget.TransformToDevice.Transform(p ) ;

//Display the top left point of the text box, after transforms.
MessageBox.Show(p.ToString() );

Редактировать: Глядя на это дальше, я не могу найти лучшего решения для этого. Это, кажется, справляется с любой ситуацией, которую я могу себе представить.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...