2010-06-06 5 views
4

J'ai une application winphone7 simple, mais je pense que cela s'appliquerait à n'importe quel Silverlight.Silverlight Liaison à TranslateX

Fondamentalement, j'ai une ellipse et je voudrais le déplacer avec les propriétés de translation X et Y. Voici ma tentative:

<Ellipse Fill="#FFF4F4F5" Margin="0,0,-3,-3" Stroke="Black" RenderTransformOrigin="0.5,0.5" > 
      <Ellipse.RenderTransform> 
       <CompositeTransform TranslateY="{Binding Y}" TranslateX="{Binding X}"/> 
      </Ellipse.RenderTransform> 
</Ellipse> 

Je suis assez sûr que la liaison est réglée correctement; Le problème est qu'il me donne cette erreur lorsque je cours l'application:

2260 Une erreur s'est produite. [Ligne: 4 Position: 33]

qui est une erreur XAML. L'erreur disparaît lorsque je commente la ligne composittransform.

Quelqu'un peut-il me diriger dans une bonne direction? Si vous avez besoin de plus de code, faites-le moi savoir, j'en posterai plus.

Merci

Répondre

5

Windows Phone 7 est actuellement basé sur le moteur d'exécution Silverlight 3 ne Silverlight 4.

Une des limitations dans Silverlight 3 est que vous ne pouvez lier à un élément qui dérive de FrameworkElement. Les classes de transformation ne dérivent pas de FrameworkElement et ne peuvent donc pas participer à la liaison. Au lieu de déplacer l'ellipse via la liaison, utilisez plutôt un Storyboard pour animer la transformation.

+0

ah, merci pour cela. Je vais essayer quelques trucs de storyboard quand je rentre à la maison ce soir. – Peanut

+0

@AnthonyWJones, cette limitation a-t-elle été supprimée dans Silverlight 4, qui vient avec Mango? – altso

+0

@altso: C'est une très bonne question. Certainement dans la version de bureau de Silverlight 4 vous pouvez lier aux objets de dépendance. Par extension je m'attendrais à voir cela dans Mango, cependant, je n'ai pas testé cela pour être sûr. – AnthonyWJones

Questions connexes