Je construis une petite application pour Windows Phone 7 (Silverlight 3) qui permet à l'utilisateur d'ajouter des objets à l'écran et de les faire glisser. Ma classe est définie comme suit:Silverlight - Comment dois-je implémenter glisser dans la toile?
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; }
}
Ma question concerne mon approche sur la façon de mettre en œuvre. Je suis assez nouveau à SilverLight (j'ai de l'expérience dans WPF) et je découvre les choses dans WPF qui manquent dans SL3 (commander, par exemple). Comme je le vois, je pourrais:
a) utiliser un ListBox
avec un canevas dans le ItemsPanelTemplate
et le lier à un ObservableCollection<Frame>
. Dans WPF utiliserait des commandes dans le DataTemplate pour les événements impliqués dans le glisser/déposer. Mais il n'y a pas de commandes dans SL3.
b) Lorsque l'utilisateur ajoute un nouvel objet, je peux créer une instance de Frame
et ensuite câbler les événements nécessaires. Comment puis-je appliquer un DataTemplate dans ce cas?
Quelle route dois-je prendre? Comment surmonter les défis décrits ci-dessus? Une meilleure suggestion?
Merci
Matt, merci pour votre réponse. Je crois que je sais comment faire le dragging réel. Ma question concernant mon approche. Dois-je prendre la route "a" ou "b". Ou peut-être utiliser un ListBox basé sur des modèles et attacher les événements en utilisant VisualTreeHelper ...? –
La solution de Laurent est très intéressante si vous avez déjà déplacé l'objet en cours de conception. Dans mon cas, les utilisateurs créent eux-mêmes ces objets. Alors, comment pourrais-je appliquer le comportement après qu'ils ont été ajoutés? –