2010-08-19 3 views
2

J'ai fait un bouton personnalisé basé sur une image de plus ou moins en utilisant le processus trouvé ici:Bouton et états personnalisés - comment donner le même effet à MouseOver et à Checked?

http://www.kirupa.com/blend_silverlight/creating_custom_button_pg1.htm

J'ai ajouté un état MouseOver qui agrandit l'1,5x d'image de sorte lorsque vous passez la souris sur l'image, il devient légèrement plus grand, puis rétrécit à la taille normale lorsque vous éloignez la souris. Tout est bon, c'est exactement ce que je veux.

Maintenant, je veux faire un bouton à bascule qui fait exactement la même chose, mais quand le bouton à bascule est pressé, la taille de l'image doit rester à 1.5x pour indiquer qu'il est vérifié. J'ai essayé d'ajouter le même effet d'agrandissement à l'état Vérifié et j'ai reçu un avertissement concernant la modification d'une propriété d'objet dans plusieurs groupes d'états. Cela a du sens ... si vous appuyez sur le bouton bascule, l'état est défini sur Vérifié dans CheckStates, mais lorsque vous déplacez la souris, il ramène l'image à Normal dans CommonStates. Ainsi, l'image ne peut pas coller à 1,5x.

Alors, comment puis-je faire exactement ce travail? Est-il possible de "tuer" changer l'état de la souris si le bouton est coché?

Répondre

1

En théorie, les 2 effets (état stationnaire et état vérifié) doivent toujours être séparés. Si l'option "Agrandie si cochée" est active, vous vous attendez quand même à ce que le contrôle augmente davantage en stationnaire, de sorte que les effets soient additifs.

Pour éviter le conflit que vous avez rencontré, vous devez appliquer les modifications du storyboard à 2 éléments différents du contrôle. Assurez-vous simplement que les deux ont la même influence globale sur le contrôle. Cela peut signifier l'introduction d'un élément supplémentaire au-dessus d'un élément existant (par exemple, une grille au-dessus de la grille de cases à cocher).

Espérons que cela aide.

+0

Merci, en fonction de votre suggestion, j'ai mis l'image à l'intérieur d'un canevas, puis j'ai fait agrandir le canevas et l'image s'est déplacée sur la souris. Maintenant, l'image reste plus grande lorsque le bouton bascule est coché; le seul problème est que si vous passez la souris sur le bouton déjà coché l'image est agrandie deux fois, mais je peux vivre avec ça. –