2008-11-25 8 views
4

Je suis en train de créer un contrôle personnalisé pour mon application Silverlight 2. Il est dans un SL projet de classe, et il contient deux fichiers:Commandes personnalisées avec mélange

  • classe MyControl, héritée de contrôle, avec quelques DepedencyProperties
  • thèmes/generic.xaml, avec des éléments visuels (ControlTemplate), les États pour VSM et transitions

J'ai créé toute XAML à la main, et il fonctionne, mais que vous souhaitez utiliser Blend2 (SP1) pour l'édition! Quand j'ouvre generic.xaml dans Blend, et que je passe à l'onglet Resources, je n'ai rien à éditer. Par exemple, lorsque je mets ce modèle visuel et cette définition d'états à App.xaml (de mon projet SL principal), je peux accéder à tous les éléments et états via les onglets Ressources et États, et les éditer visuellement.

Est-ce que Blend supporte même l'édition generic.xaml du projet de classe SL2?
Quelle est la meilleure pratique pour construire des contrôles personnalisés? Je ne veux pas que mon contrôle personnalisé dépende de quoi que ce soit du projet SL2 principal, mais je veux qu'ils soient skinnables, et puissent changer les skins (thèmes) dynamiquement.

Répondre

7

Vous pouvez éditer ceci avec le mélange.

  1. Ouvrez votre projet de contrôles dans Blend.
  2. Ouvrez votre generic.xaml
  3. cliquez sur l'onglet Ressources
  4. EXPAND generic.xaml
  5. Double-cliquez sur la ressource de style que vous souhaitez modifier.
  6. Dans les objets et la section Timeline, cliquez droit sur le style et sélectionnez « Modifier Pièces de contrôle -> Modifier le modèle »

Maintenant, vous pouvez modifier le modèle dans le generic.xaml. On dirait que vous suivez déjà les meilleures pratiques en ayant les parties et les états. Si vous voulez connaître les meilleures pratiques, jetez un oeil à this detailed post on how to deal with design time extensibility. Là, vous découvrirez comment faire les choses du temps de conception de Visual Studio et de Blend pour Silverlight.

+0

J'ai essayé, mais il n'y a rien dans l'onglet Ressource, comme je l'ai écrit dans ma question –

0

J'ai recréé le projet entier, et peut soudainement éditer mon generic.xaml des ressources. Mais ne peut pas ajouter des nouvelles énoncées dans Blend, pour cela, je dois aller à xaml.

Questions connexes