2008-11-24 7 views
1

J'essaie de créer une version pimpée du curseur qui a un contrôle utilisateur dans la partie "thumb" (ce qui signifie: le truc mobile sur le curseur) qui réagit à la les mouvements du curseur. Fondamentalement, ma version actuelle de démonstration/développement est juste un UserControl avec 5 états visuels qui le font juste changer un visage souriant à un visage en colère en 5 phases. Je voudrais mettre ce contrôle de l'utilisateur dans le pouce.Accès à UserControls dans ControlTemplates (Silverlight)

Mon seul problème est la suivante: je peux obtenir le UserControl dans le pouce aucun problème, en modifiant le modèle du curseur de contrôle dans Expression Blend. Cependant, une fois que le UserControl est dans le ControlTemplate, il est plus visible à la nouvelle classe de contrôle utilisateur et est donc non modifiable avec VisualStateManager.

Donc, fondamentalement, ma question est double:

1) Y at-il une meilleure façon de remplacer le pouce du curseur de contrôle que d'éditer son modèle?

2) Dans le cas contraire, comment puis-je accéder à des choses que j'ai ajouté au modèle?

Merci pour toutes les réponses!

Répondre

1

Je me répondre. Après avoir visité chaque page sur Internet, j'ai finalement trouvé une solution par moi-même!

J'ai ajouté un gestionnaire d'événement Loaded à mon contrôle dans ControlTemplate et dans ce gestionnaire d'événements, j'ai pris la référence à ce contrôle pour la classe réelle! Après cela, j'ai été en mesure de se référer à ce contrôle avec cette référence et, par exemple, les changements visualstate travaillé comme un charme!

J'ai maintenant un curseur qui a un smiley dans la partie poignée et le visage sur le smiley change en fonction de la position du curseur! Plutôt cool!

+1

Great! Il serait dans l'esprit de Stack Overflow si vous avez posté votre code et nous a montré comment vous l'avez fait. –

0

Je l'ai travaillé sous un angle différent: Vous pouvez remplacer le OnApplyTemplate() et obtenir votre référence avec la méthode GetTemplateChild. Il se sent en quelque sorte plus propre

Questions connexes