Programación de la interfaz de usuario con Windows Forms y .NET NET CF Programación de Sistemas Empotrados y Móviles (PSEM) Marco A. Peña [email protected] Índice de contenidos Plataformas: PPC vs. SP Windows do s Forms o s Recomendaciones oficiales PPC Diseño GUI en PPC Diseño GUI en SP Gaming PSEM: Programación de Sistemas Empotrados y Móviles 2 1 Dispositivos móviles vs. PCs Área de visualización mucho más pequeña Número de colores limitado Soporte a gráficos por hardware limitado Mecanismo de entrada de datos menos ágiles que un teclado y un ratón Recursos de cómputo limitados Dos plataformas: Pocket PC y SmartPhone DSEM: Diseño de Sistemas Empotrados y Móviles PPC vs. SP: pantalla Barra de navegación Area de trabajo Menu SP home screen (176 x 220 pixels) PPC today screen (240 x 320 pixels) DSEM: Diseño de Sistemas Empotrados y Móviles 2 PPC vs. SP: entrada de datos Pantalla táctil (reconocimiento estritura y teclado virtual), stylus y joystick Teclado de móvil y joystick DSEM: Diseño de Sistemas Empotrados y Móviles PPC vs. SP: controles Pocos controles. Muchos más controles disponibles y más ricos, e.g. TabControl Un control en cada línea. DSEM: Diseño de Sistemas Empotrados y Móviles 3 Índice de contenidos Plataformas: PPC vs. SP Windows Windows Forms Recomendaciones oficiales PPC Diseño GUI en PPC Diseño GUI en SP g Gaming 7 PSEM: Programación de Sistemas Empotrados y Móviles Controles Windows Forms Controles soportados Controles soportados sólo tanto en PPC como en SP en PPC CheckBox, ComboBox, DataGrid, ScrollBar, ImageList, Label, ListView, ManiMenu, Panel, PictureBox, ProgressBar, TextBox, Timer, TreeView Button, ContextMenu, DomainUpDown, ListBox, NumericUpDown, Open/SaveFileDialog, RadioButton, StatusBar, TabControl, ToolBar, TrackBar Hay controles del .NET Framework que no están soportados en Windows Mobile, e.g. GroupBox, ToolTip, RichTextBox. Tampoco hay soporte a operaciones drag-and-drop. DSEM: Diseño de Sistemas Empotrados y Móviles 8 4 Uso de controles Igual que en aplicaciones de escritorio. Se emplea el Forms Designer de Visual Studio para la creación de controles en tiempo de diseño. También pueden crearse controles en tiempo de ejecución: System.Windows.Forms.Button submitButton = new Button(); submitButton.Location = new Point(100,100); submitButton.Text = "Submit"; this.Controls.Add(submitButton); hi C l dd( b i ) PSEM: Programación de Sistemas Empotrados y Móviles 9 Gestión de eventos Doble clic sobre el control en el Forms Designer permite crear un método para tratar el evento principal de dicho control. La ventana de propiedades del Forms Designer permite crear métodos para tratar cualquier evento de un control. También en tiempo de ejecución. PSEM: Programación de Sistemas Empotrados y Móviles 10 5 Gestión de eventos En tiempo de ejecución: E ell método En ét d InitializeComponent i i li añadir: ñ di this.Load += new System.Eventhandler(this.Form1_Load); Escribir el método : private void Form1_Load(object sender, System.EventArgs e) { comboBox1.DropDownStyle = ComboBoxStyle.DropDownList; State[] states = new State[] { new State("Alabama", "AL"), new State("California", "CA"), }; comboBox1.DataSource = states; comboBox1.DisplayMember = "LongName"; } PSEM: Programación de Sistemas Empotrados y Móviles 11 Índice de contenidos Plataformas: PPC vs. SP Windows Forms Recomendaciones oficiales PPC Diseño GUI en PPC Diseño GUI en SP PSEM: Programación de Sistemas Empotrados y Móviles 12 6 Control Button Usage z On Windows Mobile-based Pocket PCs, the Button control is used to cause an application to perform an action when the user selects the button. Design guideline z To conserve space, do not include an Apply command button in an application. Instead, use only an OK button. PSEM: Programación de Sistemas Empotrados y Móviles Control 13 CkeckBox Usage z Use CheckBox control only when it provides choices that are opposite and unambiguous. Otherwise, use RadioButton. Design guideline z Limit the number of check boxes in the user interface. If you need to include several options, consider using a list view control instead of multiple check boxes. PSEM: Programación de Sistemas Empotrados y Móviles 14 7 Control ComboBox Usage z Use ComboBox control in place of RadioButton control to conserve space or when the user needs to add entries to a list. Design guideline z z z Pre-scroll Pre scroll the list so that the currently selected item is in view view. Determine the trade-off between saving space and clearly identifying all application options using radio buttons. Resolve hardware navigation issues. More than a navigation pad is needed to access all the combo box functionality such as the dropdown list and list selection. PSEM: Programación de Sistemas Empotrados y Móviles Control 15 ContextMenu Usage z The ContextMenu control displays additional commands for a screen item. The context menu appears when a user taps and holds the stylus on the screen item. Design guideline z z z In general, commands on the context menu should also be available from menus and buttons on the menu bar. To minimize stylus movement, list commands from top to bottom in order of expected frequency of use. Actions that are difficult to recover from, such as delete, should be placed at the bottom of the pop-up menu. PSEM: Programación de Sistemas Empotrados y Móviles 16 8 Control ListBox Usage z A list box displays items a user can select. To enable the user to enter items in a list, use a combo box instead. Design guideline z z If a list box maintains state, it should display p y the currently y selected item by default. Use icons to help the user quickly differentiate between types of items. PSEM: Programación de Sistemas Empotrados y Móviles Control 17 ListView Usage z A list view control is used to display items in a scrollable list. Each item has an icon and a label. The list view control can display content in four different views: large icon, small icon, list, and details (e.g.: listView.View = View.Details). Check boxes can be included in the list view next to items to indicate current state (CheckBoxes property). property) Design guideline z z z Full-line selection should be enabled (FullRowSelect property). List items should not be truncated. When a window containing a list view is opened, the list view control should display the currently selected item. PSEM: Programación de Sistemas Empotrados y Móviles 18 9 Control RadioButton Usage z Use radio buttons only when need to provide mutually exclusive choices and when there are only a few choices. When there are many choices, use list boxes instead. Design guideline z Keep option button labels brief to conserve space. PSEM: Programación de Sistemas Empotrados y Móviles Control 19 ProgressBar Usage z A progress bar shows the percent completed for an operation or the percentage of a value, such as battery power remaining. To communicate the purpose of the progress bar, add static text or other information. Design guideline z Keep progress bar labels brief to conserve space. PSEM: Programación de Sistemas Empotrados y Móviles 20 10 Control TabControl Usage z Use tabs in an application to group related information and functionality. Design guideline z So that the user does not need to scroll to view the tabs: 9 Avoid creating more tabs than can fit on the screen at one time. 9 Ensure that all of the edit controls are visible on a property sheet when the input panel is displayed. z To keep the content area uncluttered at the top of the screen, place tabs at the bottom of the screen. PSEM: Programación de Sistemas Empotrados y Móviles Control 21 TextBox Usage z Use text boxes to input single-line and multi-line texts. Design guideline z z In general, a text edit buffer for the control is limited to 255 bytes, or it is dynamically allocated and is limited to the space left on the device. A buffer should be limited to 255 bytes for a text box containing an e e-mail mail address, street address, phone number, or Inbox subject. When a user must enter text in a specific format, provide an example of the format and set the control to accept only data that is formatted correctly. PSEM: Programación de Sistemas Empotrados y Móviles 22 11 Control TreeView Usage z A tree view is a list box control that shows the hierarchical relationship of items. Design guideline z Including icons in a tree view helps users distinguish between different types of items such as files and folders. 23 PSEM: Programación de Sistemas Empotrados y Móviles Diseño GUI. Evolución Home Screen PPC Palm-Size PC Palm1998 Windows Mobile 2003 Palm--Size PC Palm 1999 Pocket PC 2000 Windows Mobile 2003, SE PSEM: Programación de Sistemas Empotrados y Móviles Pocket PC 2001 Windows Mobile 5.0 2005 Smartphone 2002 Smartphone 2003 Windows Mobile 6.0 2007 24 12 Diseño GUI. Recomendaciones generales Diseño de la interfaz es crítico: z z z z z z z z No intentar simplemente migrar la interfaz de una aplicación de sobremesa. Aprovechar los elementos de la UI que ya conocen los usuarios en el escritorio siempre que se pueda. Regla 80/20: Optimizar el diseño para las funciones más frecuentes. No ofrecer muchas opciones. Decidir lo mejor para el caso más frecuente. En estos dispositivos se consultan datos mucho más que se editan datos. Seguir las normas de diseño. Minimizar movimientos del lápiz lápiz. No sobrecargar la interfaz. Tienen que destacar los datos no la interfaz. ¡Atención a los detalles! PSEM: Programación de Sistemas Empotrados y Móviles 25 Índice de contenidos Plataformas: PPC vs. SP Windows Forms Recomendaciones oficiales PPC Diseño GUI en PPC Diseño GUI en SP PSEM: Programación de Sistemas Empotrados y Móviles 26 13 Diseño GUI. Recomendaciones PPC Poner todos los controles de edición por encima del SIP. Evitar scrollbars. Sobre todo las horizontales. Potenciar el uso de los menus contextuales. No usar ‘Ballons’ como diálogos. Sólo para avisos de aplicaciones que están en el background. PSEM: Programación de Sistemas Empotrados y Móviles 27 Diseño GUI. Trabajo con varias resoluciones A partir de Windows Mobile 2003 SE existen: z z z Distintas orientaciones: horizontal, vertical Distintos tamaños de p pantalla: QVGA, VGA, Cuadrada Distintas resoluciones: 9 Resoluciones estándar: 96dpi, 192dpi… 9 Se puede tener resoluciones no estándar pero es un caso extremo que no merece la pena contemplar 9 Una pantalla VGA puede estar en VGA (96dpi) o en modo de compatibilidad QVGA (192dpi) PSEM: Programación de Sistemas Empotrados y Móviles 28 14 Diseño GUI. Trabajo con varias resoluciones Comportamiento de aplicaciones antiguas en pantallas VGA z z z z Los dispositivos VGA están por defecto en modo de compatibilidad QVGA Las aplicaciones antiguas (compiladas con versión de Windows CE 4.20 o inferior) trabajan como si la pantalla fuera QVGA Las aplicaciones modernas trabajan en VGA Con el recurso HI_RES_AWARE CEUX {1} se puede desactivar el modo de compatibilidad en aplicaciones antiguas Comportamiento de aplicaciones antiguas cuando cambia la orientación de la pantalla z Se visualizan scroll-bars para que se pueda ver toda la interfaz PSEM: Programación de Sistemas Empotrados y Móviles 29 Diseño GUI. Orientación Se puede forzar una orientación. De esta manera no es necesario preparar la aplicación para distintas orientaciones. No se recomienda porque es confuso para el usuario usuario. Elegir la mejor estrategia según el caso: z z z z z Volver a dibujar la interfaz Cambiar el tamaño de algunos controles Cambiar la posición de los controles en la pantalla Diseñar para pantalla cuadrada de 240x240 Cambiar el contenido de la interfaz PSEM: Programación de Sistemas Empotrados y Móviles 30 15 Diseño GUI. Orientación PSEM: Programación de Sistemas Empotrados y Móviles 31 Diseño GUI. Resolución y orientación Trabajo con distintas resoluciones z http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnppcgen/html/dpi_awareness.asp Trabajo con distintas orientaciones z http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnppcgen/html/screen_orientation_awareness.asp Instalar aplicaciones con recursos de la correcta resolución: z http://msdn.microsoft.com/library/default.asp?url=/library/enus/dnppcgen/html/installation_with_dpi-specific_resources.asp PSEM: Programación de Sistemas Empotrados y Móviles 32 16 Índice de contenidos Plataformas: PPC vs. SP Windows Forms Recomendaciones oficiales PPC Diseño GUI en PPC Diseño GUI en SP PSEM: Programación de Sistemas Empotrados y Móviles 33 Plataforma Smartphone PSEM: Programación de Sistemas Empotrados y Móviles 34 17 Softkeys La softkey de la izquierda suele asociarse a la acción más común La softkey f de la derecha es un menú Los diálogos tienen la opción “Done” en la softkey izquierda y la opción “Cancel” (si es necesaria) en la softkey derecha PSEM: Programación de Sistemas Empotrados y Móviles 35 Controles de edición Los controles de edición soportan múltiples formas de entrada de datos Typicamente: numérico, multi-tap y T9 Si son multi-línea incluyen soporte zoom para verlos mejor PSEM: Programación de Sistemas Empotrados y Móviles 36 18 Control Spin-Box Substituye a los combo boxes, radio buttons y list boxes Admiten selección multi-item Flujo típico en una aplicación List view -> card view -> edit view Ejemplo clásico: Contactos 19 Diseño GUI. Recomendaciones Smartphone Estudiar recomendaciones de diseño. Respetar el uso de las teclas especiales del Smartphone. z z Softkey S ftk Izquierdo: I i d acción ió más á ffrecuente t o “A “Aceptar” t ” cuando d se está realizando una modificación. Softkey Derecho: Acceso al Menú o Cancelar cuando se está realizando una modificación. Usar Spin-Boxes z Sustituyen los combo boxes, list boxes y option buttons Evitar que el usuario tenga que escribir escribir. Elegir el modo de entrada de los datos adecuado (texto, números, T9 etc.) cuando el usuario entra en un edit box. Diseño GUI. Recomendaciones Smartphone 20 Referencias Novedades de desarrollo Pocket PC y Smartphone: www.microsoft.com/mobile/developer Información detallada de .NET Compact Framework y Visual Studio: mobility.microsoftdev.com bilit i ftd ASP.NET Mobile Controls: www.asp.net/mobile Desarrollo Tablet PC: www.tabletpcdeveloper.com Preguntas y respuestas PSEM: Programación de Sistemas Empotrados y Móviles 42 21