4

私のwinformsアプリケーションでは、を使用してタスクバーアイコンを変更できthis.Iconますが、タイトルバーのアプリケーションアイコンも変更されます。

これは私が現在アイコンを編集している方法です:

public static Icon GetIcon(string text)
{
    //Create bitmap, kind of canvas
    Bitmap bitmap = new Bitmap(32, 32);

    Icon icon = new Icon(@"<icon-location>");
    System.Drawing.Font drawFont = new System.Drawing.Font("Calibri", 12, FontStyle.Bold);
    System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.Orange);

    System.Drawing.Graphics graphics = System.Drawing.Graphics.FromImage(bitmap);

    graphics.TextRenderingHint = System.Drawing.Text.TextRenderingHint.SingleBitPerPixel;
    graphics.DrawIcon(icon, 0, 0);
    graphics.DrawString(text, drawFont, drawBrush, 20, 15);


    Icon createdIcon = Icon.FromHandle(bitmap.GetHicon());

    drawFont.Dispose();
    drawBrush.Dispose();
    graphics.Dispose();
    bitmap.Dispose();

    return createdIcon;
}

要件が変更されるまで、これは問題ではありませんでした。現在は、タイトルバー (左上のアプリケーション ウィンドウ) アイコンを変更せずに、タスクバー アイコンのみを変更する必要があります。

いくつかの検索の後、この回答に出くわしました。これは、基本的に、アイコンをさまざまな場所に表示するためにさまざまな解像度が使用されていることを示しています。その回答で言及されている「Greenfish Icon Editor Pro」はうまく機能しますが、未読通知の数をユーザーに通知する通知方法として使用されているため、実行時に編集を行う必要があるため、一度の編集ではありません。

目標を達成するにはアイコンの 64x64 を変更する必要があることはわかっていますが、これまでのところ、アイコンをすべて一緒に変更することしかできません。

GetIcon()関数を編集して特定のアイコン解像度を編集できる方法はありますか? (または、少なくとも代替方法の提案をいただければ幸いです)

4

1 に答える 1