Tengo una aplicación .NET 2.0 que se ejecuta en Compact Framework. Tiene un montón de formas diferentes que fueron originalmente diseñadas para ejecutarse en un dispositivo específico con una resolución de pantalla específica. Ahora estoy buscando que esta aplicación se ejecute en otros dispositivos que tienen resoluciones de pantalla muy diferentes (algunos tienen relaciones de aspecto completamente opuestas, donde la pantalla ahora es más alta que ancha). Mi pregunta es ¿cómo puedo cambiar mis formularios para que se vean bien en estas otras pantallas?Diseñar formularios para trabajar en diferentes resoluciones y relaciones de aspecto en Windows CE
Esto es un poco diferente de diseñar formularios en el marco completo ya que tengo que diseñar estos formularios para que ocupen toda la pantalla ya que las pantallas son muy pequeñas. He pensado en crear formularios separados para cada tipo de orientación de pantalla (por ejemplo, MyForm_Wide.cs, MyForm_Tall.cs, etc.). Me gustaría poder reutilizar el código generado que no es diseñador y que contiene mucha lógica empresarial vinculada a los controles de la interfaz de usuario. Tal vez podría de alguna manera usar clases parciales para que esto ocurra (por ejemplo, MyForm.cs de alguna manera se compila en MyForm_Wide.Designer.cs, etc.). Realmente me gustaría evitar versiones compiladas específicamente para cada orientación de pantalla. Otro enfoque en el que he pensado es tratar de reorganizar algunos controles en tiempo de ejecución en función del tamaño de pantalla determinado.
¿Qué piensan?
buen trabajo trooper. –
Solo para agregar algo de información adicional aquí, el FlowLayoutPanel y el TableLayoutPanel que mencioné anteriormente no están disponibles en el marco compacto (debería haberlo visto). Todo lo que realmente quiero es una forma de lograr que el diseñador de VS genere básicamente varios métodos InitializeComponent para diferentes resoluciones. Luego, en el constructor de mi formulario, simplemente puedo elegir a cuál llamar. No puedo encontrar una manera de hacer esto, desafortunadamente. Tal vez deba buscar crear un complemento VS que haga esto ... – Jason
Encontré el siguiente artículo de Microsoft sobre este tema: http://msdn.microsoft.com/en-us/library/ms838174.aspx Es destinado para VS .NET 2003, pero no parece que hayan abordado realmente este problema en ningún lanzamiento posterior. Básicamente, dicen que debe crear métodos de retrato y paisaje y copiar el código generado por el diseñador VS para cada diseño en el método apropiado. Estoy siguiendo este enfoque, excepto que estoy copiando todos los métodos de InitializeComponent ya que es muy difícil elegir el código de tamaño/posición. – Jason