Pregunta

Estoy desarrollando un WinForms C # 3.0 aplicación. Nuestro diseñador ha creado un buen montón de archivos .ico que contienen todo el arte sea necesario. La elección de Ico se hizo porque muy a menudo, se necesita la misma imagen en varios lugares en diferentes dimensiones.

Ahora, parece .ico archivos son realmente molesto para usar en el estudio visual. La única forma de utilizar esas imágenes parece ser a través de la lista de imágenes (que no son compatibles con todos los controles). En comparación con otros recursos, no se puede escribir lo siguiente:

foo.Image = global::RFQHUB.RFQHUBClient.Properties.Resources.foo; //    Cannot implicitly convert type 'System.Drawing.Icon' to 'System.Drawing.Image'  

Estas son las opciones que estoy considerando:

  • crear ImageLists de todos los tamaños posibles que hacen referencia a todos mis iconos en la ventana principal. Vincular estos ImageLists de otras ventanas y encontrar una manera de exportar objetos de imagen de la ImageList cuando no puedo utilizarlo directamente; desde ImageList contiene un método draw (), esto probablemente debería ser posible.
  • convertir todo el x.ico Tengo en varios x16.gif ... x48.gif, y el uso de los recursos a través.

Me interesaría saber si algunas personas han estado utilizando con éxito .ico recursos en una aplicación Winform. De este modo, ¿cómo se configura cosas?

¿Fue útil?

Solución

El ICO no es del todo un formato obsoleto, pero está cerca. Es todavía útil para el icono de la aplicación, pero para casi todo lo demás, es mejor utilizar un ImageList para cada tamaño necesario. Y es mucho más rápido para rellenar una ImageList de un mapa de bits que contiene múltiples imágenes nos extienden en una cuadrícula.

También desea utilizar una transparencia de canal alfa en sus mapas de bits para obtener el mejor resultado, por lo que almacenar como archivos PNG en sus recursos es el mejor camino a seguir, ya que PNG admite un canal alfa. archivos ICO y GIF sólo admiten un solo bit de transparencia - cada píxel es totalmente opaco o completamente transparente. Un canal alfa de 8 bits de transparencia parece mucho más agradable.

Si puede enviar su artista volver a la mesa de dibujo, entonces debería hacerlo, y que él / ella haga completos imágenes suavizadas con alfa. Si no puede, entonces le sugiero que escriba un pequeño programa para convertir todos sus archivos de iconos en los mapas de bits adecuados para la carga en ImageLists.

Otros consejos

Convertir las imágenes en PNG. Punto. El que decidió utilizar los archivos .ico para empezar debe conseguir hablado en privado -. El argumento tiene ningún terreno

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top