/ / ¿Cómo agregar texto al icono en c #? - c #, .net, wpf, gdi +, gdi

¿Cómo agregar texto al icono en c #? - c #, .net, wpf, gdi +, gdi

Quiero mostrar un icono [un archivo .ico] en la bandeja del sistema con algo de texto agregado en tiempo de ejecución. ¿Hay alguna forma nativa de WPF para hacerlo? o fragmento de GDI + también estaría agradecido.

Gracias.

Respuestas

5 para la respuesta № 1

Aquí está el código que funcionó para mí,

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 para la respuesta № 2

Dado que los íconos de la bandeja del sistema no tienen texto que los acompañe, puede superponer el texto en el ícono en sí mismo o utilizar una ventana emergente de información sobre herramientas.

Superposición de texto (probablemente incrustándolo en unicono generado de forma procesal) sería muy complicado, pero lo más importante es probablemente una mala idea, ya que los iconos se utilizan mejor para mostrar información de estado categórica, con información más detallada disponible en texto emergente o en una ventana emergente.

Por ejemplo, si un icono representa la bandeja de entradaestado, entonces es suficiente mostrar "correo nuevo" versus "no hay correo nuevo", sin necesidad de mostrar el número de correos nuevos. Eso permite que se muestre un icono más claro que no necesita ser descifrado en detalle por el usuario.

Un área más gris es un ícono que indica un procesoestado. Podrías tener íconos "en progreso" versus íconos "completos", pero he visto íconos con barras de progreso incrustadas en ellos, que pensé que era una buena forma de hacerlo. Obviamente, una barra de progreso en un ícono pequeño realmente no muestra datos numéricos precisos, y puede estar más cerca de expresar datos categóricos (no se hace en absoluto, se hace en parte, se completa) según la resolución.

Si decide seguir este enfoque, este enlace debería ayudarlo:

Si todavía siente que su caso de uso merece superponersetexto en un icono, entonces creo que generar el procedimiento mediante el icono será la forma de hacerlo. Creo que primero deberá agregar el texto a una imagen y luego convertirlo en un icono. Estos enlaces deberían ayudarlo con eso: