Модераторы: gambit, Kefir, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Переместить объект на другой объект, Silverlight 
V
    Опции темы
dazy
Дата 19.4.2009, 20:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Задача - переместить объект А на объект Б.
делаю так

Код

var transform = TransformToVisual(MyObjectB);
var center = transform.Transform(new Point(0, 0));


Все срабатывает хорошо.  Объект А переносит свой ЛВУ в точку MyObjectB.
Но задача чуть усложняется. Внутри объекта А есть целевая точка MySuperPoint. Нужно переместить объект А на  объект Б таким образом чтобы эти точки совпадали. Т.е. объект А должен сместиться таким образом, чтобы точка MySuperPoint попала на MyObjectB. Где внутри объекта А находится MySuperPoint заранее неизвестно.
Понятно, что нужно взять координаты MySuperPoint относительно ЛВУ объекта А и вставить их на место new Point(0, 0). 

Подскажите как это сделать?

MySuperPoint  -- ellipce
Объект А -- grid


PM MAIL   Вверх
Partizan
Дата 19.4.2009, 20:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Let's do some .NET
****


Профиль
Группа: Модератор
Сообщений: 2828
Регистрация: 19.12.2005
Где: Санкт-Петербург

Репутация: 9
Всего: 67



dazy, см. Panel.ZIndex attached property


--------------------
СУВ,
       Partizan.
PM MAIL WWW ICQ Skype GTalk Jabber   Вверх
dazy
Дата 19.4.2009, 21:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 344
Регистрация: 15.9.2006

Репутация: 3
Всего: 8



Называется в 3 соснах заблудился 
Вот так все заработало нормально.

Код

// получаем координаты MySuperPoint относительно ObjectA
var generalTransform = MySuperPoint.TransformToVisual(ObjectA);
var po = generalTransform.Transform(new Point(0, 0));

//получаем обратные координаты ObjectB
generalTransform = TransformToVisual(ObjectB);
var fg = generalTransform.Transform(new Point(0, 0));

//Перемещаем ObjectA в ObjectB, с компенсацией по MySuperPoint
Canvas.SetLeft(ObjectA , - fg.X - po.X);
Canvas.SetTop(ObjectA , - fg.Y - po.Y);


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | WPF и Silverlight | Следующая тема »


 




[ Время генерации скрипта: 0.0430 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.