Текст в значок для NotifyIcon не очищен должным образом - ClickOnce - PullRequest
0 голосов
/ 28 апреля 2020

Я использую ClickOnce для публикации приложения с опцией «обновить». Источники опубликованы на файлообменнике. После каждого обновления или переустановки - значок не удаляется из настроек панели задач, где вы можете редактировать, отображать значок постоянно или нет. Даже после удаления значок остается. Между тем у меня более 30 значков «KW Rechner» в списке из-за тестирования:

маленький вырез в качестве примера

Я создаю иконку из текста, как упоминалось в этом посте - (Спасибо, кстати): Запись текста в системный трей вместо значка

вот мой слегка измененный код:

private void GetIcon(string str)
    {
        Font fontToUse = new Font("Microsoft Sans Serif", 28, FontStyle.Regular, GraphicsUnit.Pixel);
        Brush brushToUse = new SolidBrush(Color.White);
        Bitmap bitmapText = new Bitmap(32, 32);
        Graphics g = System.Drawing.Graphics.FromImage(bitmapText);

        IntPtr hIcon;

        g.Clear(Color.Transparent);
        g.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixelGridFit;
        g.DrawString(str, fontToUse, brushToUse, -4, -2);
        hIcon = (bitmapText.GetHicon());
        Icon tempIcon = System.Drawing.Icon.FromHandle(hIcon);


        notifyIcon1.Icon = (Icon)tempIcon.Clone();
        tempIcon.Dispose();
        DestroyIcon(hIcon);
        // notifyIcon1.Icon.Dispose();
    }

В приложении. Выход () Я выполняю следующую процедуру «очистки»:

notifyIcon1.Icon = null;
notifyIcon1.Dispose();
notifyIcon1 = null;

Спасибо за вашу помощь!

...