2011-06-24 16 views
8

Me han pedido que rediseñe una aplicación antigua que escribí hace unos años.Muelles, anclajes y diseños de fluidos en Windows Forms Applications

Básicamente, no se necesita cambiar mucho, excepto que el Cliente quiere que sea más fluido y que debe ser de pantalla completa (no hay una "ventana" visible), es decir, sin barra de título, solo una ventana de pantalla completa sin bordes.

¿Cuál es la mejor manera de asegurarse de que todo se mantenga fluido, quiero decir, cómo podemos asegurarnos de que todo aparezca donde debería, porque usted sabe, diferentes resoluciones, tamaños de monitores, etc.?

Esto es fácil en páginas web/CSS, pero esto no es algo que haya hecho antes. La mayoría de los controles se crearán programáticamente en tiempo de ejecución, en función de la acción que se haya realizado, etc. ¿Cómo lograría tal diseño? Básicamente, quiero poder desplegar todo a pantalla completa, sin saber qué tan grande es su monitor ni qué resolución están usando.

+1

¿Se trata solo de anclar todo de la manera correcta? – bendr

+0

Creo que debería ser más específico, varias preguntas relacionadas con el diseño se hicieron muchas veces en SO y creo que podrá encontrar soluciones a sus problemas si los divide en otros más pequeños. – Snowbear

+0

Bueno, creo que la respuesta a mi comentario fue un indicio de lo que debería hacer ... No estoy seguro de cómo descomponerlo más de lo que creo (creo) que tengo. Pero gracias @Snowbear - Seguiré buscando. – bendr

Respuesta

17

Es ciertamente correcto al tratar de diseñar su formulario utilizando un diseño fluido que responde al tamaño del espacio disponible y el tamaño de la fuente del formulario. Para hacer eso, quiere usar los siguientes controles y propiedades de control.

1, TableLayoutPanel dividirá un área en un conjunto de filas y columnas y le permitirá colocar los controles secundarios dentro de las celdas individuales de ese diseño de tabla. Esto responde a un cambio en el ancho y la altura del formulario.

2, FlowLayoutPanel colocará los controles secundarios de izquierda a derecha y se moverá automáticamente a una nueva fila cuando se quede sin espacio. Esto es ideal para un diseño fluido ya que ajustará el diseño dependiendo del espacio disponible.

3, La propiedad Control.Antro permite que un control secundario modifique la posición y el tamaño en función del tamaño del área del cliente de formulario. Entonces, haz que tu control siempre sea un desplazamiento fijo desde los bordes derecho o inferior.

4, Control.Dock propiedad colocará un control secundario contra un borde y el tamaño opuesto se definirá automáticamente por el formulario que lo contiene.

+0

Gracias @Phil, funcionó como un encanto. :) – bendr

+1

El truco es cómo combinar inteligentemente las características y usar el anidamiento con paneles. Por ejemplo, use un panel que se acopla a la izquierda y otro que se acopla como "Completo". Esto tiene el efecto de que la parte izquierda no se ampliará, pero sí la derecha. Esta es una solución ingeniosa para una forma complicada con muchos controles en un diseño fijo a la izquierda y varias cuadrículas creíbles o paneles de vista previa a la derecha. – nalply

3

Puede poner Sus controles en tableLayout y establecer la propiedad Dock para completar.