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
Ir a la versión completa