visual tag resolucion propiedades propiedad pantalla formularios escala controles comunes autoscalemode automático ajuste ajustar c# winforms vba

tag - Zoom para un formulario de Windows en C#



propiedad tag c# (3)

¿Existe alguna manera fácil de establecer el nivel de zoom para un formulario de Windows en C #? En VBA había una propiedad de zoom del formulario.


No hay forma (que yo sepa) de hacer lo que pides con WinForms típicos.

Si está haciendo pintura / dibujo personalizado, puede ampliarlo utilizando una transformación de zoom, pero, por lo que sé, no hay ninguna propiedad de "Zoom" para el formulario en el mundo entero de .NET y API nativas de Windows / C ++ combinadas .

Probablemente podrías arreglar algo tú mismo de tal manera que escales controles por un factor constante. Y probablemente pueda encontrar controles / superficies de terceros compatibles con esto. Y quién sabe qué es posible con WPF. Pero en un mundo típico de WinForms, no.


Tuve el mismo problema y lo resolví de esta manera en c #. El código continúa Carga de formulario

float scaleX = ((float)Screen.PrimaryScreen.WorkingArea.Width / 1024); float scaleY = ((float)Screen.PrimaryScreen.WorkingArea.Height / 768); SizeF aSf = new SizeF(scaleX, scaleY); this.Scale(aSf);

Esta forma de escalar "más o menos" y todos los niños. Loops para siempre en 800x600 (?) Debe establecer las siguientes propiedades de formulario:

AutoscaleMode = Font AutoSize = False


Puede obtener algún tipo de zoom asignando una Fuente diferente al Formulario, todos los controles se ampliarán según corresponda si AutoScaleMode se establece en Fuente. Además, la configuración de AutoSize a False mantendrá el tamaño del formulario intacto, los controles crecerán hasta el centro del formulario. Necesita configurar todos los Anchors correctamente y probar el aspecto, ya que es solo un "tipo de zoom".

Así que, básicamente, aquí está el constructor de muestra:

public Form1() { InitializeComponent(); AutoSize = false; AutoScaleMode = AutoScaleMode.Font; Font = new Font("Trebuchet MS", 10.0f, FontStyle.Regular, GraphicsUnit.Point, ((byte)(204)) ); }

Después de que se muestre la forma, la asignación de una nueva fuente estropeará todos los controles y este truco no funcionará.