Procedura dettagliata: aggiunta di metadati alle icone della casella degli strumenti

In questa procedura dettagliata viene illustrato come fornire icone della casella degli strumenti per finestre di progettazione diverse, quali Visual Studio ed Expression Blend, in una libreria di controlli personalizzati Windows Presentation Foundation (WPF). Quando si aggiunge il controllo personalizzato a una casella degli strumenti di una finestra di progettazione, accanto al nome del controllo viene visualizzata l'icona appropriata.

WPF Designer per Visual Studio consente di fornire icone della casella degli strumenti personalizzate per finestre di progettazione diverse. È ad esempio possibile destinare icone diverse al controllo personalizzato in Visual Studio e in Expression Blend. Le icone fornite dall'implementazione della fase di progettazione eseguono l'override dell'icona predefinita nell'assembly di runtime del controllo.

Questa procedura dettagliata prevede l'esecuzione delle attività seguenti:

  • Creazione di un progetto di libreria di controlli personalizzati WPF con una bitmap dell'icona incorporata.

  • Creazione di un assembly distinto per metadati della fase di progettazione che esegue l'override dell'icona della casella degli strumenti predefinita.

  • Test dell'icona del controllo in fase di progettazione.

Al termine della procedura, si sarà in grado di sostituire l'icona di runtime predefinita per un controllo personalizzato in fase di progettazione.

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 di un controllo personalizzato con un'icona della casella degli strumenti

Per creare un'icona della casella degli strumenti personalizzata per un controllo, aggiungere un'immagine come risorsa incorporata al progetto del controllo.

Per creare un controllo personalizzato con un'icona della casella degli strumenti

  1. In Visual Basic o Visual C# creare un nuovo progetto di libreria di controlli personalizzati WPF denominato TailspinToysControlLibrary.

  2. Rinominare il file di codice CustomControl1 come TailspinToysControl.

  3. Aggiungere un'icona della casella degli strumenti denominata TailspinToysControl.icon.bmp come una risorsa incorporata. Per ulteriori informazioni, vedere Procedura dettagliata: creazione di un'icona della casella degli strumenti personalizzata per un controllo.

  4. Utilizzando Strumento Testo, disegnare nella bitmap il termine DEFAULT che indica quando la casella degli strumenti carica l'icona predefinita dell'assembly del controllo.

  5. Impostare il percorso di output del progetto su ".. \TailspinToysControlLibrary\bin\".

  6. 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 creare l'assembly di metadati Design-Time

  1. Creare un assembly della fase di progettazione denominato TailspinToysControlLibrary.Design. Per ulteriori informazioni, vedere Procedura dettagliata: aggiunta di metadati della fase di progettazione personalizzati.

  2. Aprire il file di codice RegisterMetadata nell'editor di codice.

  3. 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();
                }
            }
        }
    }
    
  4. Salvare la soluzione.

Creazione delle icone della casella degli strumenti della fase di progettazione

Quando si dispone di un assembly della fase di progettazione, è possibile creare icone della casella degli strumenti personalizzate e aggiungerle al progetto come risorse incorporate. Verranno create due icone, una per Visual Studio e una per Expression Blend.

Per creare l'icona della casella degli strumenti della fase di progettazione per Visual Studio

  1. Aggiungere un nuovo file bitmap al progetto TailspinToysControlLibrary.Design. Denominare il file bitmap TailspinToysControlLibrary.TailspinToysControl.VisualStudio.24bit.48x48.bmp.

  2. Nella finestra Proprietà impostare la proprietà Colori della bitmap su 24 bit.

  3. Utilizzando Strumento Testo, disegnare nella bitmap il termine METADATA che indica quando l'icona viene impostata dai metadati della finestra di progettazione.

  4. In Esplora soluzioni selezionare il file bitmap.

  5. Nella finestra Proprietà, impostare la proprietà Operazione di compilazione su Risorsa incorporata.

  6. Aggiungere un nuovo file bitmap al progetto TailspinToysControlLibrary.Design. Denominare il file bitmap TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.bmp.

    Nota

    Expression Blend carica come icone solo file estensione png, pertanto per creare l'icona Expression Blend viene utilizzato il programma Paint esterno.

  7. Fare clic con il pulsante destro del mouse nell'editor di immagini e selezionare Apri editor esterno dal menu di scelta rapida.

    Verrà aperta l'applicazione Paint.

  8. Utilizzando Strumento Testo, disegnare nella bitmap il termine BLEND che indica che l'icona è destinata all'utilizzo nella finestra Asset di Expression Blend.

  9. Salvare l'immagine come file con estensione png.

  10. In Esplora soluzioni fare clic con il pulsante destro del mouse sul progetto TailspinToysControlLibrary.Design, scegliere Aggiungi e selezionare Elemento esistente dal menu di scelta rapida.

  11. Nella finestra di dialogo Aggiungi elemento esistente selezionare TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.png e quindi fare clic su Aggiungi.

  12. In Esplora soluzioni selezionare il file di immagine con estensione png.

  13. Nella finestra Proprietà, impostare la proprietà Operazione di compilazione su Risorsa incorporata.

  14. Eliminare il file bitmap TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.bmp vuoto.

  15. Compilare la soluzione.

Test dell'icona della casella degli strumenti

Verificare l'icona Casella degli strumenti personalizzata aggiungendo TailspinToysControl alla casella degli strumenti.

Per verificare l'icona Casella degli strumenti

  1. In Visual Basic o Visual C# aggiungere un nuovo progetto di applicazione WPF denominato TestApplication.

    MainWindow.xaml viene aperto in WPF Designer. Nella casella degli strumenti verrà visualizzato TailspinToysControl nella scheda TailspinToysControlLibrary Controls. L'icona predefinita del controllo verrà visualizzata.

    Icona della casella degli strumenti predefinita

    Nota

    L'icona incorporata nell'assembly di runtime del controllo non verrà visualizzata. Si tratta di una limitazione della funzionalità di popolamento automatico della casella degli strumenti.

  2. Nella casella degli strumenti fare clic con il pulsante destro del mouse su TailspinToysControl, selezionare Elimina dal menu di scelta rapida e quindi fare clic su OK.

    TailspinToysControl viene rimosso dalla casella degli strumenti.

  3. Nella casella degli strumenti fare clic con il pulsante destro del mouse sulla scheda TailspinToysControlLibrary Controls e quindi selezionare Scegli elementi dal menu di scelta rapida.

    Verrà visualizzata la finestra di dialogo Scegli elementi della Casella degli strumenti.

  4. Fare clic sulla scheda Componenti WPF. Per ulteriori informazioni, vedere Scheda Componenti WPF, finestra di dialogo Scegli elementi della Casella degli strumenti.

  5. Fare clic su Sfoglia e spostarsi nella cartella TailspinToysControlLibrary\TailspinToysControlLibrary\bin.

  6. Fare doppio clic su TailspinToysControlLibrary.dll per selezionare il file.

    I dettagli dell'assembly TailspinToysControlLibrary verranno visualizzati nella finestra di dialogo Scegli elementi della casella degli strumenti. L'icona della fase di progettazione personalizzata verrà visualizzata nella casella di gruppo TailspinToysControl.

    Finestra di dialogo Scegli elementi della Casella degli strumenti con icona personalizzata

  7. Scegliere OK.

    TailspinToysControl verrà visualizzato nella casella degli strumenti con l'icona TailspinToysControlLibrary.TailspinToysControl.VisualStudio.24bit.48x48.bmp che esegue l'override dell'icona nell'assembly di runtime.

    Icona della casella degli strumenti personalizzata

Passaggi successivi

  • È inoltre possibile caricare il controllo personalizzato e l'assembly della fase di progettazione in Expression Blend. A partire da Expression Blend 4, l'icona TailspinToysControlLibrary.TailspinToysControl.Expression.4bit.48x48.png viene visualizzata nella finestra Asset quando si aggiunge un riferimento al progetto all'assembly TailspinToysControlLibrary.dll.

  • È possibile distribuire gli assembly di runtime e 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.

Vedere anche

Attività

Procedura dettagliata: creazione di un'icona della casella degli strumenti personalizzata per un controllo

Riferimenti

AttributeTable

Scheda Componenti WPF, finestra di dialogo Scegli elementi della Casella degli strumenti

Altre risorse

Icone della casella degli strumenti

Procedura dettagliata: aggiunta di metadati della fase di progettazione personalizzati

Distribuzione di un controllo personalizzato e di assembly della fase di progettazione

Aggiunta di metadati della fase di progettazione