Использование растрового изображения для значка в C#

Вы не можете установить свойство Icon формы, равное растровому изображению. К счастью, достаточно легко создать значок из растрового изображения.

В этом примере используется следующий код, чтобы значок формы отображал изображение в растровом изображении.

// Преобразуйте ресурс растрового изображения в значок и используйте его.
private void Form1_Load(object sender, EventArgs e)
{
    // Получить растровое изображение.
    Bitmap bm = new Bitmap(Properties.Resources.Spiral);

    // Преобразование в значок и использование значка формы.
    this.Icon = Icon.FromHandle(bm.GetHicon());
}

Программа получает битмап, хранящийся в ресурсе Spiral. Затем он использует метод GetHicon растрового изображения, чтобы получить дескриптор значка, содержащего одно и то же изображение. Он передает дескриптор методу Значок класса FromHandle для создания объекта Icon и устанавливает свойство Icon формы к результату.

Обратите внимание, что метод GetHicon создает значок в неуправляемой памяти. Если форма перестает пользоваться значком, его память не освобождается. Если вы создаете только несколько значков таким образом, это не имеет большого значения, но если программа запускает сотни значков во время выполнения, это может привести к утечке памяти. Если вам нужно создать и уничтожить многие значки во время выполнения, используйте функцию API DestroyIcon, чтобы освободить память дескриптора значка.

Источник: http://csharphelper.com/blog/2017/01/use-a-bitmap-for-an-icon-in-c/

1 Звезда2 Звезды3 Звезды4 Звезды5 Звезд (1 оценок, среднее: 5,00 из 5)
Adblock
detector