Cómo: Controlar los cambios de orientación y de resolución

Actualización: noviembre 2007

La tabla siguiente muestra las orientaciones de la pantalla de Pocket PC y Smartphone admitidas por .NET Compact Framework. Las dimensiones se expresan en píxeles, ancho por alto.

Orientación de la pantalla

Dimensiones típicas para 96 PPP

Dimensiones típicas (alta resolución) para 192 PPP

Vertical - Pocket PC

Vertical - Smartphone

240 x 320

176 x 220 y 240 x 320

480 x 640

352 x 440 y 480 x 640

Horizontal - Pocket PC únicamente

320 x 240

640 x 480

Cuadrado - Pocket PC únicamente

240 x 240

480 x 480

Se pueden utilizar la delimitación y el acoplamiento para cambiar automáticamente el tamaño de los controles de modo que el contenido del formulario se adapte a las diferentes orientaciones de la pantalla. La delimitación mantiene una distancia especificada desde un borde, mientras que el acoplamiento ajusta a un borde del contenedor primario.

La propiedad Anchor de un control determina su comportamiento de cambio de tamaño cuando el formulario o el control que lo contienen cambia de tamaño. La propiedad Dock de un control especifica a qué bordes del control que lo contiene debe ajustarse.

La delimitación y el acoplamiento en .NET Compact Framework tienen el mismo comportamiento que en .NET Framework completo.

Se puede personalizar la aplicación para adaptarse a diferentes valores de resolución de píxeles en PPP (puntos por pulgada).

Para controlar un cambio de orientación de la pantalla

  • Se pueden colocar controles que deben estar en un área determinada del formulario en un control contenedor, como Panel, y establecer a continuación la propiedad Dock de Panel en el borde deseado.

  • Para mantener el tamaño y la ubicación apropiados de un control con respecto a los lados del formulario, establezca la propiedad Anchor de los controles en la ubicación deseada.

    Por ejemplo, para que un botón aparezca siempre en la esquina inferior derecha y conserve su tamaño, utilice la instrucción siguiente:

    Me.Button1.Anchor = AnchorStyles.Bottom Or AnchorStyles.Right
    
    this.button1.Anchor = AnchorStyles.Bottom | AnchorStyles.Right;
    

En Microsoft Visual Studio 2005, se pueden establecer valores de delimitación y acoplamiento en el panel Propiedades.

Para cambiar la orientación de la pantalla

  • Si el Pocket PC está ejecutando Windows Mobile 5.0, puede cambiar la orientación de la pantalla de vertical a cero grados a 90, 180 y 270 grados, según la especificación de la enumeración ScreenOrientation. Por ejemplo, la instrucción siguiente establece una orientación horizontal:

    SystemSettings.ScreenOrientation = ScreenOrientation.Angle270 
    
    SystemSettings.ScreenOrientation = ScreenOrientation.Angle270;
    

    Observe que la orientación de la pantalla cambia el dispositivo, no sólo la aplicación. Por consiguiente, una práctica correcta sería volver a establecer el valor original de la orientación de la pantalla en el código de control de eventos para el evento FormClosing.

Para controlar un cambio de resolución de la pantalla

  • Cuando se crea un proyecto para dispositivos inteligentes en Microsoft Visual Studio 2005, el diseñador proporciona código para cambiar automáticamente el tamaño de los controles de acuerdo con la resolución de la pantalla del dispositivo; en caso contrario, si la aplicación se ejecuta en un dispositivo con una resolución en PPP (puntos por pulgada) diferente de la del dispositivo utilizado para su desarrollo, el formulario se mostrará con un tamaño demasiado grande o demasiado pequeño. Por consiguiente, el tamaño de los controles del formulario se debe ajustar apropiadamente.

    Cuando se crea un proyecto para dispositivos inteligentes en Visual Studio 2005, el diseñador agrega las instrucciones siguientes en el método InitializeComponent:

    [Visual Basic]

    Me.AutoScaleDimensions = New System.Drawing.SizeF(96.0!, 96.0!)
    Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi
    

    [C#]

    this.AutoScaleDimensions = new System.Drawing.SizeF(96F, 96F);
    this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Dpi;
    

    Estas instrucciones muestran una aplicación que se desarrolla para un dispositivo con una resolución de 96 PPP y en la que el cambio automático de tamaño se realiza utilizando el modo de PPP. Observe que 96 PPP es el valor predeterminado obtenido del equipo de escritorio que ejecuta Visual Studio 2005. El diseñador genera automáticamente este código, y los controles del formulario cambiarán automáticamente de tamaño para controlar diferentes valores de PPP.

    Si la aplicación contiene gráficos que se dibujan en el método OnPaint, no cambiarán automáticamente de tamaño. Será necesario utilizar las propiedades DpiX y DpiY de los objetos Graphics para determinar el cambio de tamaño apropiado. Ejemplo Rotated Text Using LogFont muestra un ejemplo de cambio de tamaño manual.

Vea también

Tareas

Cómo: Alinear un control con los bordes de los formularios

Conceptos

Ajuste automático de escala en formularios Windows Forms

Otros recursos

Controles de formularios Windows Forms en .NET Compact Framework