/ / Ako pridať text do ikony v c #? - c #, .net, wpf, gdi +, gdi

Ako pridať text do ikony v jazyku c #? - c #, .net, wpf, gdi +, gdi

Chcem zobraziť ikonu [a .ico súbor] v systémovej lište s nejakým textom pridaný k nemu za behu. Je na to nejaký natívny spôsob WPF? alebo úryvok pre GDI + by bol tiež vďačný.

Ďakujem.

odpovede:

5 pre odpoveď č. 1

Tu je kód, ktorý pracoval pre mňa,

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

Icon icon = new Icon(@"ImagesPomoDomo.ico");
System.Drawing.Font drawFont = new System.Drawing.Font("Calibri", 16, FontStyle.Bold);
System.Drawing.SolidBrush drawBrush = new System.Drawing.SolidBrush(System.Drawing.Color.White);

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, 1, 2);

//To Save icon to disk
bitmap.Save("icon.ico", System.Drawing.Imaging.ImageFormat.Icon);

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

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

return createdIcon;
}

0 pre odpoveď č. 2

Keďže ikony na paneli úloh nemajú text, ktorý by ich sprevádzal, môžete text prekryť buď samotnou ikonou, alebo použiť kontextové okno s popisom.

Prekrytie textu (pravdepodobne vložením do aprocedurálne generovaná ikona) by bola veľmi nešikovná, ale čo je dôležitejšie, pravdepodobne je zlý nápad, pretože ikony sa najlepšie používajú na zobrazenie informácií o kategorickom stave, pričom podrobnejšie informácie sú k dispozícii v kontextovom texte alebo v kontextovom okne.

Napríklad, ak ikona predstavuje priečinok doručenej poštystav, potom stačí zobraziť "novú poštu" verzus "žiadna nová pošta", bez nutnosti zobrazovať počet nových e-mailov. To umožňuje zobraziť jasnejšiu ikonu, ktorú užívateľ nemusí podrobne rozlúštiť.

Šedšia oblasť je ikona označujúca procespostavenie. Mohli by ste mať len "prebiehajúce" versus "kompletné" ikony, ale videl som v nich ikony s postupujúcimi pruhmi, o ktorých som si myslel, že je to elegantný spôsob, ako to urobiť. Je zrejmé, že indikátor priebehu v malej ikonke naozaj nezobrazuje presné číselné údaje a môže byť bližšie k vyjadreniu kategorických údajov (neurobených vôbec, čiastočným spôsobom, kompletným) v závislosti od rozlíšenia.

Ak sa rozhodnete pre tento prístup, tento odkaz by mal pomôcť:

  • Článok Projektu ukazuje, ako zmeniť ikonu, zobraziť kontextové okno a kontextové okno pomocou WPF.

Ak stále cítite, že váš prípad použitia si zaslúži prekrytietext na ikonu, potom si myslím, že procesné generovanie ikony bude spôsob, ako to urobiť. Myslím, že najprv budete musieť pridať text do obrázka a potom ho previesť na ikonu. Tieto odkazy by vám mali pomôcť: