2010-03-22 7 views
2

Si vous créez un simple bouton, puis choisissez Modifier le modèle -> Modifier une copie, Blend génère automatiquement une zone de style, avec tous les états de bouton (MouseEnter, MouseLeave, Pressed, etc.). Nulle part dans le code généré ne dit que sur un événement "MouseOver", changez l'état en "MouseOver", mais il continue à fonctionner!Modifier automatiquement VisualState dans Silverlight

Comment un bouton standard le fait-il? Y a-t-il une sorte de AutoEventWireUp?

+0

Je ne suis pas vraiment sûr de comprendre votre question. Voulez-vous vraiment changer l'état d'un bouton de cette façon? – AnthonyWJones

Répondre

4

Les contrôles définissent eux-mêmes les états qu'ils respectent. Malheureusement, il n'y a pas de câblage automatique magique. Le bouton contient du code qui détermine quand la souris est dessus et, dans ce cas, pour définir son état visuel à MouseOver. Le TemplateVisualStateAttribute est ce qui permet à Blend de savoir qu'il existe un état valide d'un certain sur ce contrôle, mais le code dans le contrôle lui-même est ce qui détermine réellement l'état dans lequel il se trouve.

Si vous développez votre propre contrôle, met la charge de définir quels états votre contrôle prend en charge sur vous, ainsi que le travail de déterminer correctement l'état dans lequel vous êtes.

FYI: La plupart des contrôles intégrés ont une liste de leurs états pris en charge dans la documentation MSDN . Par exemple, Button for Silverlight 3 is here.

Questions connexes