2010-08-19 19 views
0

Je dois étendre un contrôle de bouton pour ajouter des états visuels supplémentaires, pouvant être liés.Comment puis-je ajouter des groupes d'états visuels liés à un bouton?

Ce que je voudrais créer est une propriété booléenne supplémentaire, à lier à, qui va créer un simple changement d'état visuel sur le bouton. Pour cet exemple, il peut s'agir d'une bordure supplémentaire qui change de couleur en fonction de la valeur booléenne.

Tout le comportement du bouton existant devrait être entièrement séparé de ce nouvel ensemble d'états.

Est-ce que cela peut être fait?

Répondre

0

Cela peut certainement être fait. Here's a post qui vous guidera à travers les étapes que vous devrez prendre, et comprend des informations supplémentaires pour étendre le contrôle avec les propriétés (en plus de celles à maintenir l'état) qui apparaissent dans le contrôle final. Les pièces dont vous aurez besoin sont:

  1. Une classe qui dérive de bouton (classe de contrôle personnalisé)
  2. Un style par défaut pour ce contrôle (qui va dans /themes/generic.xaml). Vous pouvez commencer avec le style générique de Button et y ajouter vos états.
  3. Une propriété de dépendance qui détient votre valeur booléenne
  4. Une nouvelle VisualStateGroup qui détient vos deux nouveaux Etats
  5. code dans votre classe qui recolle changer états avec la valeur booléenne que vous avez défini, résultant probablement de l'interaction de l'utilisateur
  6. Vous trouverez peut-être qu'il est plus facile de modifier l'état visuel dans Blend, en fonction de la sophistication de vos transitions, etc.