CLR: .Net / Mono / Boo / Otros CLR > C#

 Urge: Escalado Automatico De Aplicaciones

(1/1)

pino79:
Alguien sabe si los formularios tienen alguna propiedad que funcione para escalar el formulario a razón de la resolución que tenga cargada Windows en ese momento. Sería interesante que escalase también todo el contenido.

JuanK:

--- Cita de: "pino79" --- Alguien sabe si los formularios tienen alguna propiedad que funcione para escalar el formulario a razón de la resolución que tenga cargada Windows en ese momento.
--- Fin de la cita ---
NO, lo debes hacer tu mismo y es algo sencillo de hacer:

Screen.PrimaryScreen.Bounds

Calculas la relacion entre el tamaño de tu forma y el tamaño de la resolucion de pantalla, y cada vez que se redibuje recalculas ese tamaño... usa el evento OnPaint.


--- Citar ---Sería interesante que escalase también todo el contenido.
--- Fin de la cita ---

Para escalar el contenido puedes hacer algo similar o usar alguno de los layouts incluidos o bien crear uno propio.

pino79:
Al final lo solucioné de la siguiente forma:


--- Código: Text ---        /// <summary>        /// Escala la ventana principal a razon del area de maximizacion el monitor principal.        /// </summary>        /// <param name="frm">Formulario que se desea escalar.</param>        public static void EscalarVentana(Form frm)        {            float h = SystemInformation.PrimaryMonitorMaximizedWindowSize.Width;            float v = SystemInformation.PrimaryMonitorMaximizedWindowSize.Height;             float relH = h / (float)1024;            float relV = v / (float)768;             frm.Scale(new SizeF(relH, relV));        }         /// <summary>        /// Escala las ventans hijas en formularios MDI.        /// </summary>        /// <param name="frm">Formulario que se desea escalar.</param>        /// <param name="tamano0">Tamano de los margenes de la ventana.</param>        public static void EscalarVentanaInteriorNueva(Form frm, Size tamano0)        {            float h = SystemInformation.PrimaryMonitorMaximizedWindowSize.Width - tamano0.Width;            float v = SystemInformation.PrimaryMonitorMaximizedWindowSize.Height - tamano0.Height;             float relH = h / (float)1014;            float relV = v / (float)716;              frm.Scale(new SizeF(relH, (float)relV));         }  
Pero Muchas gracias de todasformaspor la ayuda.

Navegación

[0] Índice de Mensajes

Ir a la versión completa