Red de conocimiento informático - Conocimiento de Internet de las cosas - Cómo: manejar la rotación de la pantallaSin embargo, los controladores de dispositivos brindan distintos grados de soporte para el uso de renderizado no vertical, por lo que su aplicación debe seguir las prácticas recomendadas para manejar la rotación de la pantalla. Nota: El alojamiento de aplicaciones móviles Direct3D requiere el software Windows Mobile versión 5.0 para computadoras portátiles y teléfonos inteligentes. Para obtener información sobre el software y el SDK de Windows Mobile, consulte Recursos externos para .NET Framework 3.0. El siguiente ejemplo de código se incluye en el kit de desarrollo de software (SDK) de Windows. Detectar si la pantalla está girada Agregue una referencia al componente Microsoft.WindowsCE.Forms en el proyecto. La forma más sencilla de agregar código de detección es colocarlo en el controlador de eventos de cambio de tamaño del formulario principal. Agregue un delegado para este controlador de eventos en el constructor del formulario. C# this.Resize = new System.EventHandler(this.MyForm_Resize); Visual Basic AddHandler02Resize, 02AddressOf02Me.MyForm_Resize Agregue una variable miembro de clase booleana orientaciónChanged para realizar un seguimiento cuando cambia la orientación. La orientación actual está determinada por el valor de la propiedad Orientación de pantalla. Un valor de ángulo 0 representa el modo retrato. Si la orientación actual es diferente, configure el indicador orientaciónCambiada para marcarla. Normalmente no se hace nada en este momento porque es posible que la aplicación aún esté en segundo plano. No cambie la orientación mediante programación aquí, ya que es posible que el cambio de orientación que desencadenó el evento de cambio de tamaño aún no se haya completado. Si intentas cambiar de dirección ahora, fracasarás. Bool orientaciónChanged = false; privatevoid MyForm_Resize(objeto remitente, EventArgs e) { if (SystemSettings.ScreenOrientation! = ScreenOrientation.Angle0) orientaciónChanged = true } Visual Basic 'Agrega una variable miembro de clase para almacenar la orientación que ha cambiado. Dim OrientationChanged AsBoolean = FalsePrivateSub MyForm_Resize(ByVal sender AsObject, ByVal e As EventArgs) If (SystemSettings.lt;gt;ScreenOrientation.Angle0) Then orientaciónChanged = TrueEndIfEndSub Cómo hacerlo después de la rotación de la pantalla Puede verificar cada cuadro para determinar si la orientación cambia ocurrir. El método CheckRotation en el siguiente ejemplo de código cambia la orientación de la pantalla nuevamente al modo vertical estableciendo la propiedad ScreenOrientation. Debe considerar otras acciones basadas en la experiencia de usuario deseada. Por ejemplo, es posible que no desee que la aplicación cambie la orientación de la pantalla por sí sola, sino que notifique al usuario que la aplicación no continuará renderizándose a menos que el usuario vuelva a la orientación original. Si cambia la orientación de la pantalla, también debe guardar y restaurar la orientación original de la pantalla, como se muestra en el siguiente ejemplo. Si no cambia la orientación de la pantalla, pero realiza otras operaciones, la renderización puede continuar normalmente; la renderización puede finalizar silenciosamente, pero también puede devolver una excepción en caso de falla. El siguiente ejemplo de código intenta poner el dispositivo en modo vertical si aún no está en modo vertical.

Cómo: manejar la rotación de la pantallaSin embargo, los controladores de dispositivos brindan distintos grados de soporte para el uso de renderizado no vertical, por lo que su aplicación debe seguir las prácticas recomendadas para manejar la rotación de la pantalla. Nota: El alojamiento de aplicaciones móviles Direct3D requiere el software Windows Mobile versión 5.0 para computadoras portátiles y teléfonos inteligentes. Para obtener información sobre el software y el SDK de Windows Mobile, consulte Recursos externos para .NET Framework 3.0. El siguiente ejemplo de código se incluye en el kit de desarrollo de software (SDK) de Windows. Detectar si la pantalla está girada Agregue una referencia al componente Microsoft.WindowsCE.Forms en el proyecto. La forma más sencilla de agregar código de detección es colocarlo en el controlador de eventos de cambio de tamaño del formulario principal. Agregue un delegado para este controlador de eventos en el constructor del formulario. C# this.Resize = new System.EventHandler(this.MyForm_Resize); Visual Basic AddHandler02Resize, 02AddressOf02Me.MyForm_Resize Agregue una variable miembro de clase booleana orientaciónChanged para realizar un seguimiento cuando cambia la orientación. La orientación actual está determinada por el valor de la propiedad Orientación de pantalla. Un valor de ángulo 0 representa el modo retrato. Si la orientación actual es diferente, configure el indicador orientaciónCambiada para marcarla. Normalmente no se hace nada en este momento porque es posible que la aplicación aún esté en segundo plano. No cambie la orientación mediante programación aquí, ya que es posible que el cambio de orientación que desencadenó el evento de cambio de tamaño aún no se haya completado. Si intentas cambiar de dirección ahora, fracasarás. Bool orientaciónChanged = false; privatevoid MyForm_Resize(objeto remitente, EventArgs e) { if (SystemSettings.ScreenOrientation! = ScreenOrientation.Angle0) orientaciónChanged = true } Visual Basic 'Agrega una variable miembro de clase para almacenar la orientación que ha cambiado. Dim OrientationChanged AsBoolean = FalsePrivateSub MyForm_Resize(ByVal sender AsObject, ByVal e As EventArgs) If (SystemSettings.lt;gt;ScreenOrientation.Angle0) Then orientaciónChanged = TrueEndIfEndSub Cómo hacerlo después de la rotación de la pantalla Puede verificar cada cuadro para determinar si la orientación cambia ocurrir. El método CheckRotation en el siguiente ejemplo de código cambia la orientación de la pantalla nuevamente al modo vertical estableciendo la propiedad ScreenOrientation. Debe considerar otras acciones basadas en la experiencia de usuario deseada. Por ejemplo, es posible que no desee que la aplicación cambie la orientación de la pantalla por sí sola, sino que notifique al usuario que la aplicación no continuará renderizándose a menos que el usuario vuelva a la orientación original. Si cambia la orientación de la pantalla, también debe guardar y restaurar la orientación original de la pantalla, como se muestra en el siguiente ejemplo. Si no cambia la orientación de la pantalla, pero realiza otras operaciones, la renderización puede continuar normalmente; la renderización puede finalizar silenciosamente, pero también puede devolver una excepción en caso de falla. El siguiente ejemplo de código intenta poner el dispositivo en modo vertical si aún no está en modo vertical.

c# privatebool CheckOrientation() { // orientaciónChanged se establece en verdadero al cambiar el tamaño si se detecta un cambio en la orientación del dispositivo. ScreenOrientation = ScreenOrientation.Angle0; // Ahora la orientación ha vuelto al modo vertical // No intentes cambiarla nuevamente. orientaciónChanged = false; } catch (Excepción) { // No se pudo cambiar el modo de visualización. }} returntrue; }// if (!CheckOrientation()) return; // El código de representación se omite aquí. }Visual Basic PrivateFunction CheckOrientation() AsBoolean ' directionChanged se establece en verdadero al cambiar el tamaño si ' se detecta que la orientación del dispositivo ha cambiado si la orientación cambió Entonces ' Intente volver a cambiar la pantalla al modo vertical. Pruebe SystemSettings.ScreenOrientation = ScreenOrientation.Angle0 '. Ahora que la orientación ha vuelto al modo vertical, no intente cambiarla nuevamente. orientaciónChanged = falseCatchAs Excepción 'Error al cambiar el modo de visualización. ReturnfalseEndTryEndIfReturntrueEndFunction ' Utilice el método CheckOrientation() antes de renderizar. Toda la representación del cuadro anterior ocurre aquí. PrivateSub Render() ' Es posible que algunos controladores de pantalla no funcionen si el dispositivo no está orientado correctamente. IfNot CheckOrientation ThenReturnEndIf ' Omite el código de representación aquí. EndSub restaura la orientación cuando se cierra la aplicación. Si decide cambiar la orientación de la pantalla mediante programación, también debe restaurar la orientación original de la aplicación cuando se cierra la aplicación. Debido a que la aplicación puede intentar cambiar la orientación mientras se ejecuta, es necesario guardar y restaurar la orientación inicial cuando se cierra la aplicación. Agregue una variable miembro para almacenar la orientación inicial.