Cómo usar imágenes y botones con fondo transparente en Windows Mobile con C#

Teléfono v3

En la época del iOS, Android, BlackBerry OS, e incluso de un casi recién nacido Windows Phone 7 que pretende crecer de forma acelerada, hablar de Windows Mobile puede parecer demodé, fuera de moda. Y lo es. «Microsoft ha matado a su sistema operativo Windows Mobile«, decía en mi entrada anterior Cómo abrir el menú Inicio en Windows Mobile con C#. Con el objetivo de recuperar parte del terreno perdido, Microsoft ha venido realizando un amplio conjunto de acciones dirigidas a estimular el mercado de Windows Phone 7. De momento, el mercado se resiste.

«Visual Studio 2010 no admite el desarrollo de aplicaciones para móviles para las versiones de Windows Phone anteriores a Windows Phone 7.0.«, puede leerse en la MSDN. Visual Studio 2008 es la última versión del entorno de desarrollo que podemos utilizar para crear aplicaciones de Windows Mobile. Quizás ésta sea una de esas acciones que comentaba antes, en este caso dirigida a desestimular el apego por la vieja plataforma.

Copio y pego un párrafo de mi anterior entrada sobre movilidad:

¿Quiere decir ésto que ya hay que olvidarse, como desarrollador, de Windows Mobile? Quizás. Pero allá afuera hay un legado de aplicaciones antiguas que necesitan ser mantenidas, y lo cierto es que las nuevas tendencias en los desarrollos móviles están influyendo en los criterios de mantenimiento de aplicaciones que fueron creadas sobre una plataforma ya obsoleta.

Si hoy tuviera que crear una aplicación de movilidad desde cero, no la haría para Windows Mobile. Pero si tuviera que mantener una aplicación desarrollada para esa plataforma, no lo haría como se hacía hace varios años. Utilizaría ideas de diseño modernas que superan las capacidades nativas de Windows Mobile. Por ejemplo, la posibilidad de usar imágenes y botones con fondo transparente.

Teléfono v3 menú inicio

Para lograr éste y otros tipos de efectos visuales, existen en la red interesantes proyectos de código abierto. He seleccionado uno de ellos muy fácil de usar, AlphaMobileControls, para crear una interfaz más actual y continuar desarrollando el proyecto pedagógico que he utilizado a lo largo de varios post: una sencilla aplicación que sirve para hacer llamadas telefónicas, ocupa toda la pantalla y permite abrir el menú Inicio.

AlphaMobileControls ofrece pocas clases y controles:

AlphaMobileControls

  • AlphaControl: Ancestro de los controles con transparencia.
  • AlphaForm: Contenedor para colocar controles descendientes de AlphaControl. Sustituye a Windows.Forms.Form.
  • AlphaImage: Imagen con transparencia. Usada por AlphaImageButton y AlphaPictureBox.
  • AlphaImageButton: Botón con transparencia.
  • AlphaLabel: Label con transparencia.
  • AlphaPanel: Contenedor para colocar controles descendientes de AlphaControl. Sustituye a Windows.Forms.Panel.
  • AlphaPictureBox: PictureBox con transparencia.

Basta con sustituir en la aplicación antigua los Windows.Forms.Form por AlphaForm, o los Windows.Forms.Panel por AlphaPanel. Encima de ellos podemos colocar los botones, imágenes y etiquetas que necesite el programa. El código de ejemplo demuestra cómo hacerlo. Para los botones he utilizado un psd de la colección openPhone, creado por Walrick. Descarga el código del proyecto Teléfono v3.

Otros proyectos de interés:

Windows Mobile – Attractive UI: Part I
http://www.codeproject.com/KB/windows/Windows_Mobile_UI.aspx
(Explica cómo funciona internamente AlphaMobileControls)

Silvermoon
http://silvermoon.codeplex.com/

Composite UI Framework for Windows Mobile
http://mobileui.codeplex.com/

Fluid – Windows Mobile .NET Touch Controls
http://fluid.codeplex.com/

Touch UI
http://touchui.codeplex.com/