J'essaie de créer une icône de barre d'état système très simple qui n'est rien d'autre qu'un cercle coloré dynamiquement avec une bordure blanche. Pour ce faire, nous utilisons la police Webdings. Le "n" dans Webdings n'est qu'un simple cercle.
Ce que je fais actuellement y est presque, mais sur certains PC (mais pas tous), il finit par être entouré d'une bordure noire hachée et laide :
Voici ce que j'ai :
protected static Icon GetTrayIconFromCache(Color statusColor)
{
Bitmap bmp = new Bitmap(16,16);
Graphics circleGraphic = Graphics.FromImage(bmp);
circleGraphic.DrawString("n", new Font("Webdings", 12F, FontStyle.Regular), Brushes.White, -3f, -2f);
circleGraphic.DrawString("n", new Font("Webdings", 9F, FontStyle.Regular), new SolidBrush(statusColor), 0f, -1f);
Icon ico = Icon.FromHandle((bmp).GetHicon());
return ico;
}
J'ai beau essayer, je n'arrive pas à me débarrasser de ces vilains points noirs à l'extérieur du cercle. Ils n'apparaissent pas pour tout le monde.... certains développeurs ne les voient pas et ils ont l'air nets et propres. Nous n'avons pas encore trouvé le point commun entre les PC où l'affichage est bon et ceux où il ne l'est pas.
Mais... existe-t-il une meilleure façon de procéder ?