Partager via


Définir l’icône d’un contrôle dans la boîte à outils

Les contrôles que vous créez reçoivent toujours une icône générique pour la fenêtre Boîte à outils dans Visual Studio. Toutefois, lorsque vous modifiez l’icône, il ajoute un sens du professionnalisme à votre contrôle et le fait ressortir dans la boîte à outils. Cet article explique comment définir l’icône de votre contrôle.

Icône Bitmap

Les icônes de la fenêtre Boîte à outils dans Visual Studio doivent être conformes à certaines normes, sinon elles sont ignorées ou affichées de manière incorrecte.

  • Taille : les icônes d’un contrôle doivent être une image bitmap 16x16.
  • Type de fichier : l’icône peut être un fichier Bitmap (.bmp) ou Une icône Windows (.ico).
  • Transparence : La couleur magenta (RVB : 255,0,255, Hex : 0xFF00FF) est rendue transparente.
  • Thèmes : Visual Studio a plusieurs thèmes, mais chaque thème est considéré comme sombre ou clair. Votre icône doit être conçue pour le thème clair. Lorsque Visual Studio utilise un thème sombre, les couleurs sombres et claires de l’icône sont automatiquement inversées.

Comment affecter une icône

Les icônes sont affectées à un contrôle avec l’attribut ToolboxBitmapAttribute . Pour plus d’informations sur les attributs, consultez Attributs (C#) ou Vue d’ensemble des attributs (Visual Basic).

Conseil / Astuce

Vous pouvez télécharger un exemple d’icône à partir de GitHub.

L’attribut est défini sur la classe du contrôle et possède trois constructeurs différents :

  • ToolboxBitmapAttribute(Type)— Ce constructeur prend une référence de type unique et, à partir de ce type, tente de trouver une ressource incorporée à utiliser comme icône.

    Le FullName du type est utilisé pour rechercher une ressource intégrée dans l’assemblage de ce type, en utilisant le format suivant : {project-name}.{namespace-path}.{type-name}{.bmp|.ico}. Par exemple, si le type MyProject.MyNamespace.CompassRose est référencé, l’attribut recherche une ressource incorporée nommée MyProject.MyNamespace.CompassRose.bmp ou MyProject.MyNamespace.CompassRose.ico.

    // 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)— Ce constructeur prend deux paramètres. Le premier paramètre est un type, et le second est l’espace de noms et le nom de la ressource incorporée dans l’assembly de ce type.

    // Loads the icon from the WinFormsApp1.Resources.CompassRose.bmp resource
    // in the assembly containing the type CompassRose
    [ToolboxBitmap(typeof(CompassRose), "WinFormsApp1.Resources.CompassRose.bmp")]
    public partial class CompassRose : UserControl
    {
        // Code for the control
    }
    
    ' Loads the icon from the WinFormsApp1.Resources.CompassRose.bmp resource
    ' in the assembly containing the type CompassRose
    <ToolboxBitmap(GetType(CompassRose), "WinFormsApp1.Resources.CompassRose.bmp")>
    Public Class CompassRose
        ' Code for the control
    End Class
    
  • ToolboxBitmapAttribute(String)— Ce constructeur prend un paramètre de chaîne unique, le chemin absolu du fichier d’icône.

    // 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