2008-10-13 14 views
26

Así que estoy tratando de averiguar cómo la propiedad AutoScaleMode del Formulario posiblemente puede ayudar a admitir un sistema con una fuente o DPI que es diferente de mi máquina de desarrollo de trabajo.Compatible con DPI y cambios de fuente predeterminados

Desde el SDK:

AutoScaleMode Enumeración

enumeración pública AutoScaleMode

None 
    Automatic scaling is disabled.  
Font 
    Controls scale relative to the dimensions of the 
    font the classes are using, which is typically the 
    system font. 
Dpi  
    Controls scale relative to the display resolution. 
    Common resolutions are 96 and 120 DPI. 

Por defecto .NET 2.0 Las formas de uso AutoScaleMode.Font.

Así que diseñé un formulario de muestra en mi máquina de desarrollo Windows XP, Tahoma 8 pt, 96 DPI. Luego lo probé en una máquina

  • 14 pt Segoe UI 96 ppp
  • 14 pt Segoe UI 150 DPI máquina

Los resultados no fueron alentadores, como se puede ver en esta captura de pantalla:

La propiedad AutoScaleMode no fue diseñado para permitir un formulario de .NET para el apoyo de diferentes fuentes o configuración de DPI. Entonces, ¿qué es la forma correcta de admitir diferentes configuraciones de fuente y DPI?

Respuesta

5

La forma correcta es escalar los controles, el formulario en sí y el texto dentro. Esto suena muy complicado, pero los controles de diseño (TableLayoutPanel y FlowLayoutPanel), combinados con la propiedad AutoSize, lo hacen considerablemente menos difícil.

+0

Los paneles de diseño no serían de ninguna utilidad en la forma anterior, las cosas ya se describen utilizando anclajes. –

+1

Reemplace los anclajes. Los anclajes son el problema. –

+0

Reemplazarlos con qué? El botón es 50dlus de ancho, y es 7dlus desde el borde derecho e inferior. –

Cuestiones relacionadas