2010-04-14 3 views
1

J'ai un élément Border avec une propriété Margin liée à la propriété StartDate (DateTime) d'une classe. Si la propriété a changé la marge est également modifiée (avec l'aide du convertisseur). Je voudrais apporter des modifications aussi facilement que possible. par exemple, sur le côté de l'interface utilisateur une heure dans la classe de données est égale à 15 pixels sur l'écran et quand je change StartDate +/- une heure je peux voir cette marge d'élément sautant de +/- 15 pixels droite/gauche ... alors comment puis-je animer cela?Animation de propriété Silverlight et liée aux données (Marge)

Merci d'avance!

BTW - c'est ma première question ici :)

Répondre

1

Unforunately vous ne pouvez pas manipuler nativement une marge par une animation. Une marge est vraiment un objet d'épaisseur et les objets sont presque impossibles pour l'animateur de propriété simple à comprendre par eux-mêmes.

Cependant, comme quelque chose maintenant jours-, il y a plusieurs façons de passer outre ceci:

  1. Déplacer la position de l'objet au lieu de la marge: Animate Margin Change in Silverlight

  2. Créer une nouvelle classe similaire à la classe ThicknessAnimation dans WPF et l'appeler dans le code: http://blogs.msdn.com/blemmon/archive/2009/03/18/animating-margins-in-silverlight.aspx

  3. ... ou mon moyen préféré: Trouver autre chose à animer. Vous pouvez manipuler un objet différent qui déplace vos autres objets. Vous pouvez animer la largeur et la hauteur d'un objet invisible/clair très facilement. Si cet élément est la première chose dans un panneau de pile, tous les éléments qui le suivent seront déplacés car ses valeurs de taille sont modifiées. Cela peut devenir difficile, mais c'est vraiment facile à faire.

Bonne chance!

Questions connexes