Condividi tramite


Impostare l'icona di un controllo nella casella degli strumenti (Windows Form .NET)

I controlli creati ricevono sempre un'icona generica per la finestra Casella degli strumenti in Visual Studio. Tuttavia, quando si modifica l'icona, aggiunge un senso di professionalità al controllo e lo distingue nella casella degli strumenti. Questo articolo illustra come impostare l'icona per il controllo.

Importante

La documentazione di Desktop Guide per .NET 7 e .NET 6 è in fase di costruzione.

Icona Bitmap

Le icone per la finestra della casella degli strumenti in Visual Studio devono essere conformi a determinati standard; in caso contrario, vengono ignorate o visualizzate in modo non corretto.

  • Dimensioni: le icone per un controllo devono essere un'immagine bitmap di 16x16.
  • Tipo di file: l'icona può essere un file Bitmap (.bmp) o un file icona di Windows (.ico).
  • Trasparenza: il colore magenta (RGB: 255,0,255, esadecimale: 0xFF00FF) viene reso trasparente.
  • Temi: Visual Studio ha più temi, ma ogni tema è considerato scuro o chiaro. L'icona deve essere progettata per il tema chiaro. Quando Visual Studio usa un tema scuro, i colori scuri e chiari nell'icona vengono invertiti automaticamente.

Come assegnare un'icona

Le icone vengono assegnate a un controllo con l'attributo ToolboxBitmapAttribute . Per altre informazioni sugli attributi, vedere Cenni preliminari sugli attributi (C#) o attributi (Visual Basic).

L'attributo viene impostato sulla classe del controllo e dispone di tre costruttori diversi:

  • ToolboxBitmapAttribute(Type)— Questo costruttore accetta un singolo riferimento al tipo e da tale tipo tenta di trovare una risorsa incorporata da usare come icona.

    Il valore del FullName tipo viene usato per cercare di trovare una risorsa incorporata corrispondente in base al nome del tipo. Ad esempio, se viene fatto riferimento al MyProject.MyNamespace.CompassRose tipo, l'attributo cerca una risorsa denominata MyProject.MyNamespace.CompassRose.bmp o MyProject.MyNamespace.CompassRose.ico. Se la risorsa viene trovata, viene usata come icona del controllo.

    // Looks for a CompassRose.bmp or CompassRose.ico embedded resource in the
    // same namespace as the CompassRose type.
    [ToolboxBitmap(typeof(CompassRose))]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Looks for a CompassRose.bmp or CompassRose.ico embedded resource in the
    ' same namespace as the CompassRose type.
    <ToolboxBitmap(GetType(CompassRose))>
    Public Class CompassRose
        ' Code for the control
    End Class
    
  • ToolboxBitmapAttribute(Type, String): questo costruttore accetta due parametri. Il primo parametro è un tipo e il secondo è lo spazio dei nomi e il nome della risorsa nell'assembly di tale tipo.

    // Loads the icon from the WinFormsApp1.Resources.CompasRoseIcon.bmp resource
    // in the assembly containing the type CompassRose
    [ToolboxBitmap(typeof(CompassRose), "WinFormsApp1.Resources.CompasRoseIcon.bmp")]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Loads the icon from the WinFormsApp1.Resources.CompasRoseIcon.bmp resource
    ' in the assembly containing the type CompassRose
    <ToolboxBitmap(GetType(CompassRose), "WinFormsApp1.Resources.CompasRoseIcon.bmp")>
    Public Class CompassRose
        ' Code for the control
    End Class
    
  • ToolboxBitmapAttribute(String)— Questo costruttore accetta un singolo parametro stringa, il percorso assoluto del file icona.

    // Loads the icon from a file on disk
    [ToolboxBitmap(@"C:\Files\Resources\MyIcon.bmp")]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Loads the icon from a file on disk
    <ToolboxBitmap("C:\Files\Resources\MyIcon.bmp")>
    Public Class CompassRose
        ' Code for the control
    End Class