Procedura dettagliata: aggiunta di metadati della fase di progettazione personalizzati
WPF Designer per Visual Studio consente di fornire metadati della fase di progettazione personalizzati per finestre di progettazione diverse. È ad esempio possibile destinare esperienze di progettazione diverse ai controlli personalizzati in Visual Studio e in Expression Blend. Per registrare i metadati della fase di progettazione personalizzati con la finestra di progettazione, si implementa l'interfaccia IProvideAttributeTable e si chiama uno dei metodi AddCustomAttributes.
Questa procedura dettagliata mostra come fornire le implementazioni della fase di progettazione personalizzate per una libreria di controlli personalizzati WPF o Silverlight. Questa procedura dettagliata prevede l'esecuzione delle attività seguenti:
Creazione di un progetto di libreria di controlli personalizzati WPF.
Creazione di un assembly distinto per i metadati della fase di progettazione.
Al termine della procedura, si sarà in grado di fornire metadati della fase di progettazione personalizzati per un controllo personalizzato WPF o Silverlight.
Nota
È possibile che le finestre di dialogo e i comandi di menu visualizzati siano diversi da quelli descritti nella Guida a seconda delle impostazioni attive o dell'edizione del programma. Per modificare le impostazioni, scegliere Importa/Esporta impostazioni dal menu Strumenti. Per ulteriori informazioni, vedere Gestione delle impostazioni.
Prerequisiti
Per completare la procedura dettagliata, è necessario disporre dei componenti seguenti:
- Visual Studio 2010.
Creazione del controllo personalizzato
Il primo passaggio consiste nella creazione del progetto per il controllo personalizzato WPF.
Per creare il controllo personalizzato
In Visual Basic o Visual C# creare un nuovo progetto di libreria di controlli personalizzati WPF denominato TailspinToysControlLibrary.
Il codice per CustomControl1 verrà aperto nell'editor di codice.
Nota
Se l'esperienza di progettazione personalizzata è destinata solo a Expression Blend 4 e Visual Studio 2010, impostare il framework di destinazione del progetto su .NET Framework 4. Se l'esperienza di progettazione personalizzata è destinata a Expression Blend 3, Expression Blend 4 e Visual Studio 2010, impostare il framework di destinazione del progetto su .NET Framework 3.5.
In Esplora soluzioni modificare il nome del file di codice in TailspinToysControl.cs o TailspinToysControl.vb. Se viene visualizzata una finestra di messaggio in cui si richiede se eseguire un'operazione di ridenominazione per tutti i riferimenti del progetto, fare clic su Sì.
Aprire le proprietà del progetto e selezionare la scheda Compila (Compila per Visual Basic).
Impostare il percorso di output del progetto su "bin\".
Compilare la soluzione.
Creazione dell'assembly di metadati Design-Time
Il codice Design-Time viene distribuito in speciali assembly di metadati. Per questa procedura dettagliata, i metadati personalizzati sono supportati da Visual Studio e da Expression Blend e sono distribuiti in un assembly denominato TailspinToysControlLibrary.Design. Per ulteriori informazioni sulla denominazione degli assembly, vedere Distribuzione di un controllo personalizzato e di assembly della fase di progettazione.
Per creare l'assembly di metadati Design-Time
In Visual Basic o Visual C# aggiungere un nuovo progetto Libreria di classi denominato TailspinToysControlLibrary.Design alla soluzione.
Impostare il percorso di output del progetto su ".. \TailspinToysControlLibrary\bin\". In questo modo l'assembly del controllo e l'assembly dei metadati verranno mantenuti nella stessa cartella, consentendo l'individuazione di metadati per le finestre di progettazione.
Aggiungere riferimenti agli assembly WPF e XAML riportati di seguito.
PresentationCore
PresentationFramework
System.Xaml
WindowsBase
Aggiungere riferimenti agli assembly WPF Designer riportati di seguito.
Microsoft.Windows.Design.Extensibility
Microsoft.Windows.Design.Interaction
Nota
Se si dispone di Expression Blend installato, è possibile vedere due set degli assembly WPF Designer nella finestra di dialogo Aggiungi riferimenti. Selezionare i due assembly installati con Visual Studio situati nella cartella $(VSInstallDir)\Common7\IDE\PublicAssemblies.
Nota
Se gli assembly WPF Designer non vengono visualizzati nella finestra di dialogo Aggiungi riferimenti. Fare clic sulla scheda Sfoglia e passare agli assembly nella cartella $(VSInstallDir)\Common7\IDE\PublicAssemblies.
Aggiungere un riferimento al progetto TailspinToysControlLibrary.
In Esplora soluzioni modificare il nome del file di codice Class1 in RegisterMetadata.cs o RegisterMetadata.vb.
Sostituire il codice generato automaticamente con il codice seguente. Con questo codice viene creato un oggetto AttributeTable che associa gli attributi della fase di progettazione personalizzati alla 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(); } } } }
Compilare la soluzione.
Passaggi successivi
In questa procedura dettagliata viene fornita una soluzione che contiene l'implementazione di base per un'esperienza di progettazione di una finestra di progettazione personalizzata che funziona in Visual Studio e in Expression Blend. È possibile espandere questa soluzione eseguendo la procedura dettagliata seguente.
È possibile registrare il controllo e gli assembly della fase di progettazione tramite la procedura di registrazione AssemblyFoldersEx. Per ulteriori informazioni, vedere Distribuzione di un controllo personalizzato e di assembly della fase di progettazione.
È possibile scaricare esempi di implementazioni della fase di progettazione dal sito Esempi di Extensibility di WPF Designer.
Vedere anche
Attività
Riferimenti
Scheda Componenti WPF, finestra di dialogo Scegli elementi della Casella degli strumenti
Altre risorse
Procedura dettagliata: aggiunta di metadati alle icone della casella degli strumenti
Icone della casella degli strumenti
Distribuzione di un controllo personalizzato e di assembly della fase di progettazione