2010-07-14 3 views
0

J'écris actuellement un contrôle de sélection pour WPF. Le contrôle consiste en un ItemsControl, avec TextBlock en tant qu'élément DataTemplate de choix. ItemsControl est la cible d'une double animation qui manipule la propriété Canvas.Left. Ce que je voudrais faire est de créer un "mode circulaire", qui permettra au chapiteau d'ajouter dynamiquement un élément à sa queue chaque fois que le dernier élément a défilé dans la vue. De cette façon, le rectangle de sélection n'apparaîtra jamais vide.Double détection d'objet d'animation

Comment puis-je détecter quand un TextBlock a "défilé" dans la vue (devient effectivement visible) à la suite de l'animation?

+0

Est-ce que cela doit fonctionner dans Silverlight? Quelle version? Avez-vous considéré le 'PathListBox' fourni dans le SDK Blend 4? – AnthonyWJones

+0

Validez la largeur réelle de la zone de texte par rapport au canevas, pendant ce temps, pourquoi n'essaieriez-vous pas d'utiliser une zone de liste et des éléments de contrôle ici. Cela pourrait bien répondre à vos besoins, je suppose. Voici une question similaire dans stackoverflow, http://stackoverflow.com/questions/2796861/scrolling-list-items-in-wpf – sudarsanyes

+0

Quelqu'un peut-il m'aider avec ces? S'il vous plaît. Merci. http://stackoverflow.com/questions/21933660/wpf-text-marquee-animation/21934028?noredirect=1#21934028 –

Répondre

1

Il peut travailler que vous vérifiez si la propriété de ActualWidthItemControl est supérieure à la valeur actuelle de votre Canvas.LeftTextBlock.

Pour l'événement de changement, un coup d'oeil à ce SO: How do I handle Canvas.Top change event in WPF?

Peut-être il est utile de garder les références au dernier contrôle qui a été ajouté à la queue de votre chapiteau, de sorte que vous pouvez supprimer le gestionnaire d'événements une fois que le contrôle a défilé dans la vue et attacher le gestionnaire d'événements au TextBlock qui est ensuite ajouté à la queue.

Ce serait bien de pouvoir dessiner quelque chose pour une meilleure compréhension. Si quelque chose n'est pas clair (techniquement ou conceptuellement) demander, demander, demander ... :)