Silverlight - Как мне реализовать перетаскивание на холсте? - PullRequest
1 голос
/ 04 октября 2010

Я создаю небольшое приложение для Windows Phone 7 (Silverlight 3), которое позволяет пользователю добавлять объекты на экран и перетаскивать их.Мой класс определяется следующим образом:

 public class Frame
    {
        public double Height{ get; set; }
        public double Width { get; set; }
        public Uri Image { get; set; }
        public string Details { get; set; }
        public SolidColorBrush BgColor { get; set; }
    }

Мой вопрос касается моего подхода к реализации этого.Я довольно новичок в SilverLight (имею опыт работы с WPF) и выясняю, что в WPF отсутствует в SL3 (например, командование).Как я вижу, я мог бы:
a) использовать ListBox с Canvas в ItemsPanelTemplate и связать его с ObservableCollection<Frame>.В WPF будут использоваться команды в DataTemplate для событий, связанных с перетаскиванием.Но в SL3 нет команд.
b) Когда пользователь добавляет новый объект, я мог бы создать экземпляр Frame и затем связать необходимые события.Как я могу применить DataTemplate в этом случае?

Какой маршрут мне выбрать?Как преодолеть трудности, описанные выше?Любое лучшее предложение?

Спасибо

1 Ответ

2 голосов
/ 04 октября 2010

Посмотрите на GestureListerner / GestureReceiver в Silverlight Toolkit .
Источник поставляется с образцом, который демонстрирует перетаскивание объекта.

В качестве альтернативы посмотрите на MultiTouch Behavior, созданный Laurent Bugnion , который также позволяет перетаскивать.

...