Procédure pas à pas : mise à disposition de métadonnées au moment du design personnalisées
Le Concepteur WPF pour Visual Studio vous permet de fournir des métadonnées au moment du design personnalisées pour différents concepteurs. Par exemple, vous pouvez cibler des expériences de conception différentes pour vos contrôles personnalisés dans Visual Studio et Expression Blend. Pour enregistrer vos métadonnées au moment du design personnalisées avec le concepteur, vous implémentez l'interface IProvideAttributeTable et appelez l'une des méthodes AddCustomAttributes.
Cette procédure pas à pas indique comment fournir des implémentations au moment du design personnalisées pour une bibliothèque de contrôles personnalisés WPF ou Silverlight. Dans cette procédure pas à pas, vous allez effectuer les tâches suivantes :
créer un projet de bibliothèque de contrôles personnalisés WPF ;
créer un assembly séparé pour les métadonnées au moment du design.
Lorsque vous aurez terminé, vous saurez comment fournir des métadonnées au moment du design personnalisées pour un contrôle personnalisé WPF ou Silverlight.
Notes
Les boîtes de dialogue et les commandes de menu qui s'affichent peuvent être différentes de celles qui sont décrites dans l'aide, en fonction de vos paramètres actifs ou de l'édition utilisée. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Utilisation des paramètres.
Composants requis
Pour exécuter cette procédure pas à pas, vous devez disposer des composants suivants :
- Visual Studio 2010.
Création du contrôle personnalisé
La première étape consiste à créer le projet pour le contrôle personnalisé WPF.
Pour créer le contrôle personnalisé
Créez un projet de bibliothèque de contrôles personnalisés WPF dans Visual Basic ou Visual C# nommé TailspinToysControlLibrary.
Le code pour CustomControl1 s'ouvre dans l'éditeur de code.
Notes
Si votre expérience de conception personnalisée doit seulement cibler Expression Blend 4 et Visual Studio 2010, définissez la version cible du projet sur .NET Framework 4. Si votre expérience de conception personnalisée doit cibler Expression Blend 3, Expression Blend 4 et Visual Studio 2010, définissez la version cible du projet sur .NET Framework 3.5.
Dans l'Explorateur de solutions, remplacez le nom du fichier de code par TailspinToysControl.cs ou TailspinToysControl.vb. Si une boîte de message s'affiche pour demander si vous souhaitez renommer toutes les références dans ce projet, cliquez sur Oui.
Ouvrez les propriétés du projet et sélectionnez l'onglet Générer (Compiler pour Visual Basic).
Le chemin de sortie du projet doit être « bin\ ».
Générez la solution.
Création de l'assembly de métadonnées au moment du design
Le code au moment du design est déployé dans des assemblys de métadonnées spéciaux. Pour cette procédure pas à pas, les métadonnées personnalisées sont prises en charge par Visual Studio et Expression Blend, et sont déployées dans un assembly nommé TailspinToysControlLibrary.Design. Pour plus d'informations sur l'attribution de noms aux assemblys, consultez Déploiement d'un contrôle personnalisé et d'assemblys au moment du design.
Pour créer l'assembly de métadonnées au moment du design
Ajoutez un nouveau projet de bibliothèque de classes dans Visual Basic ou Visual C# nommé TailspinToysControlLibrary.Design pour la solution.
Affectez au chemin de sortie du projet la valeur \TailspinToysControlLibrary\bin\". Cela permet de garder l'assembly du contrôle et l'assembly de métadonnées dans le même dossier, ce qui active la découverte de métadonnées pour les concepteurs.
Ajoutez des références aux assemblys WPF et XAML suivants.
PresentationCore
PresentationFramework
System.Xaml
WindowsBase
Ajoutez des références aux assemblys du Concepteur WPF suivants.
Microsoft.Windows.Design.Extensibility
Microsoft.Windows.Design.Interaction
Notes
Si Expression Blend est installé, vous pouvez voir deux ensembles d'assemblys Concepteur WPF dans la boîte de dialogue Ajouter des références. Sélectionnez les deux assemblys installés avec Visual Studio, situés dans le dossier $(VSInstallDir)\Common7\IDE\PublicAssemblies.
Notes
Si les assemblys Concepteur WPF n'apparaissent pas dans la boîte de dialogue Ajouter des références. Cliquez sur l'onglet Parcourir et accédez aux assemblys du dossier$(VSInstallDir)\Common7\IDE\PublicAssemblies.
Ajoutez une référence au projet TailspinToysControlLibrary.
Dans l'Explorateur de solutions, remplacez le nom du fichier de code Class1 par RegisterMetadata.cs ou RegisterMetadata.vb.
Remplacez le code généré automatiquement par le code suivant. Ce code crée un AttributeTable qui associe les attributs au moment du design personnalisés à la classe TailspinToysControl.
using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Windows.Design; using Microsoft.Windows.Design.Features; using Microsoft.Windows.Design.Metadata; using TailspinToysControlLibrary; // The ProvideMetadata assembly-level attribute indicates to designers // that this assembly contains a class that provides an attribute table. [assembly: ProvideMetadata(typeof(TailspinToysControlLibrary.Design.RegisterMetadata))] namespace TailspinToysControlLibrary.Design { internal class RegisterMetadata : IProvideAttributeTable { // Called by the designer to register any design-time metadata. public AttributeTable AttributeTable { get { AttributeTableBuilder builder = new AttributeTableBuilder(); // Set ToolboxBrowsableAttribute to true to display your custom control // in the Toolbox and in the Choose Items... dialog box. builder.AddCustomAttributes(typeof(TailspinToysControl), new ToolboxBrowsableAttribute(true)); return builder.CreateTable(); } } } }
Générez la solution.
Étapes suivantes
Cette procédure pas à pas vous permet d'obtenir une solution contenant l'implémentation de base d'une expérience de conception personnalisée qui fonctionne dans Visual Studio et Expression Blend. Vous pouvez étendre cette solution en effectuant la procédure pas à pas suivante.
Vous pouvez enregistrer votre contrôle et les assemblys au moment du design à l'aide de la procédure d'inscription AssemblyFoldersEx. Pour plus d'informations, consultez Déploiement d'un contrôle personnalisé et d'assemblys au moment du design.
Vous pouvez télécharger des exemples d'implémentations au moment du design personnalisées à partir du site Exemples d'extensibilité du Concepteur WPF (page éventuellement en anglais).
Voir aussi
Tâches
Procédure pas à pas : création d'une icône de boîte à outils personnalisée pour un contrôle
Référence
Composants WPF, onglet de la boîte de dialogue Choisir des éléments de boîte à outils
Autres ressources
Procédure pas à pas : mise à disposition de métadonnées pour les icônes de boîte à outils
Déploiement d'un contrôle personnalisé et d'assemblys au moment du design