• Sábado 27 de Abril de 2024, 03:22

Autor Tema:  Urge: Escalado Automatico De Aplicaciones  (Leído 1483 veces)

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Urge: Escalado Automatico De Aplicaciones
« en: Miércoles 28 de Febrero de 2007, 12:27 »
0
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

  • Miembro de ORO
  • ******
  • Mensajes: 5393
  • Nacionalidad: co
    • Ver Perfil
    • http://juank.io
Re: Urge: Escalado Automatico De Aplicaciones
« Respuesta #1 en: Miércoles 28 de Febrero de 2007, 13:40 »
0
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.
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.

Para escalar el contenido puedes hacer algo similar o usar alguno de los layouts incluidos o bien crear uno propio.
[size=109]Juan Carlos Ruiz Pacheco
[/size]
Microsoft Technical Evangelist
@JuanKRuiz
http://juank.io

pino79

  • Nuevo Miembro
  • *
  • Mensajes: 19
    • Ver Perfil
Re: Urge: Escalado Automatico De Aplicaciones
« Respuesta #2 en: Domingo 4 de Marzo de 2007, 11:37 »
0
Al final lo solucioné de la siguiente forma:

Código: Text
  1.         /// <summary>
  2.         /// Escala la ventana principal a razon del area de maximizacion el monitor principal.
  3.         /// </summary>
  4.         /// <param name="frm">Formulario que se desea escalar.</param>
  5.         public static void EscalarVentana(Form frm)
  6.         {
  7.             float h = SystemInformation.PrimaryMonitorMaximizedWindowSize.Width;
  8.             float v = SystemInformation.PrimaryMonitorMaximizedWindowSize.Height;
  9.  
  10.             float relH = h / (float)1024;
  11.             float relV = v / (float)768;
  12.  
  13.             frm.Scale(new SizeF(relH, relV));
  14.         }
  15.  
  16.         /// <summary>
  17.         /// Escala las ventans hijas en formularios MDI.
  18.         /// </summary>
  19.         /// <param name="frm">Formulario que se desea escalar.</param>
  20.         /// <param name="tamano0">Tamano de los margenes de la ventana.</param>
  21.         public static void EscalarVentanaInteriorNueva(Form frm, Size tamano0)
  22.         {
  23.             float h = SystemInformation.PrimaryMonitorMaximizedWindowSize.Width - tamano0.Width;
  24.             float v = SystemInformation.PrimaryMonitorMaximizedWindowSize.Height - tamano0.Height;
  25.  
  26.             float relH = h / (float)1014;
  27.             float relV = v / (float)716;
  28.  
  29.  
  30.             frm.Scale(new SizeF(relH, (float)relV));
  31.  
  32.         }
  33.  
  34.  

Pero Muchas gracias de todasformaspor la ayuda.