我正在爲Windows Phone 7(Silverlight 3)構建一個小應用程序,它允許用戶將對象添加到屏幕並拖動它們。 我的類定義如下:Silverlight - 我應該如何在畫布中實現拖動?
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經驗),並且發現了WP3中缺少SL3的東西(比如指揮)。 正如我所看到的那樣,我可以:
a)使用ListBox
和ItemsPanelTemplate
中的畫布並將其綁定到ObservableCollection<Frame>
。在WPF中,將使用DataTemplate中的命令來處理Drag/Drop中涉及的事件。但SL3中沒有命令。
b)當用戶添加一個新的對象時,我可以創建一個Frame
的實例,然後連接必要的事件。如何在這種情況下應用DataTemplate?
我應該選擇哪條路線?如何克服上述的挑戰?有什麼更好的建議?
感謝
馬特,謝謝你的回答。我相信我知道如何去做實際的拖拽。我的問題關於我的方法。我應該選擇路線「a」還是「b」。或者也許使用模板化的ListBox並使用VisualTreeHelper附加事件...? – 2010-10-04 14:04:01
如果您有設計時已將物體拖拽到位,Laurent的解決方案非常有趣。在我的情況下,用戶自己創建這些對象。那麼,如何在添加後應用這些行爲? – 2010-10-04 14:06:33