Partager via


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é

  1. 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.

  2. 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.

  3. Ouvrez les propriétés du projet et sélectionnez l'onglet Générer (Compiler pour Visual Basic).

  4. Le chemin de sortie du projet doit être « bin\ ».

  5. 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

  1. Ajoutez un nouveau projet de bibliothèque de classes dans Visual Basic ou Visual C# nommé TailspinToysControlLibrary.Design pour la solution.

  2. 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.

  3. Ajoutez des références aux assemblys WPF et XAML suivants.

    • PresentationCore

    • PresentationFramework

    • System.Xaml

    • WindowsBase

  4. 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.

  5. Ajoutez une référence au projet TailspinToysControlLibrary.

  6. Dans l'Explorateur de solutions, remplacez le nom du fichier de code Class1 par RegisterMetadata.cs ou RegisterMetadata.vb.

  7. 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();
                }
            }
        }
    }
    
  8. Générez la solution.

Étapes suivantes

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

AttributeTable

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

Icônes de boîte à outils

Déploiement d'un contrôle personnalisé et d'assemblys au moment du design

Mise à disposition de métadonnées au moment du design