Sdílet prostřednictvím


Nastavení ikony ovládacího prvku v sadě nástrojů (model Windows Forms .NET)

Ovládací prvky, které vytvoříte, vždy obdrží obecnou ikonu pro okno Sady nástrojů v sadě Visual Studio. Když ale ikonu změníte, přidá do svého ovládacího prvku smysl pro profesionální práci a vynikne v sadě nástrojů. V tomto článku se naučíte, jak nastavit ikonu ovládacího prvku.

Důležité

Dokumentace k desktopové příručce pro .NET 7 a .NET 6 se právě připravuje.

Bitmap icon

Ikony pro okno panelu nástrojů v sadě Visual Studio musí odpovídat určitým standardům, jinak se ignorují nebo se zobrazují nesprávně.

  • Velikost: Ikony ovládacího prvku musí být rastrový obrázek 16x16.
  • Typ souboru: Ikona může být rastrový obrázek (.bmp) nebo soubor ikony Systému Windows (.ico).
  • Průhlednost: Purpurová barva (RGB: 255,0,255, Hex: 0xFF00FF) je vykreslena průhledná.
  • Motivy: Visual Studio má více motivů, ale každý motiv se považuje za tmavý nebo světlý. Ikona by měla být navržená pro světlý motiv. Pokud Visual Studio používá tmavý motiv, tmavé a světlé barvy v ikoně se automaticky invertují.

Přiřazení ikony

Ikony jsou přiřazeny ovládacímu prvku s atributem ToolboxBitmapAttribute . Další informace o atributech najdete v tématu Atributy (C#) nebo Přehled atributů (Visual Basic).

Atribut je nastaven na třídu ovládacího prvku a má tři různé konstruktory:

  • ToolboxBitmapAttribute(Type)– Tento konstruktor používá jeden odkaz na typ a z tohoto typu se pokusí najít vložený prostředek, který se použije jako ikona.

    Hodnota typu FullName se používá k pokusu o vyhledání odpovídajícího vloženého prostředku na základě názvu typu. Pokud je například odkazován na MyProject.MyNamespace.CompassRose typ, atribut hledá prostředek s názvem MyProject.MyNamespace.CompassRose.bmp nebo MyProject.MyNamespace.CompassRose.ico. Pokud se prostředek najde, použije se jako ikona ovládacího prvku.

    // 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)– Tento konstruktor má dva parametry. První parametr je typ a druhý je obor názvů a název prostředku v sestavení tohoto typu.

    // 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)– Tento konstruktor přebírá jeden řetězcový parametr, absolutní cestu k souboru ikony.

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