2012-09-12 15 views
5

Con mi monitor actual, prefiero una configuración de PPP de 120 píxeles por pulgada (lo que Windows sugiere como valor predeterminado). Sin embargo, después de diseñar un formulario, a menudo se establece incorrectamente en sistemas que no usan 120 píxeles por pulgada.Al usar el diseñador de WinForms, ¿siempre necesito tener el DPI configurado en 96?

Me pregunto, ¿es necesario que configure la pantalla a 96 píxeles por pulgada para cada vez que uso el diseñador?

Además, hay algunos problemas cuando otros desarrolladores tienen diferentes DPI. Abren un formulario en el diseñador y mueven algo así como un control de edición de texto, y de repente descubren que también se redimensiona automáticamente. Entonces, hay un control que es de un tamaño diferente al de los demás y estamos en un lío.

P.S. He leído publicaciones relacionadas. Todos son interesantes, pero no respondieron mi pregunta.

How to control the font DPI in .NET WinForms app

C# WinForms disable DPI scaling

WinForms Different DPI Layouts

DPI not scaling properly

Visual Studio and DPI issue

+0

Por supuesto, descubra cómo obtener el diseño correcto cambiando constantemente el DPI. Esto definitivamente va a suceder después de que lo envíes. Usted solo consideraría mantenerlo en un valor establecido si prefiere meter la cabeza en la arena. –

+0

Cambio el DPI para probar diseños con diferentes configuraciones. Pero ... ¿debería apegarme a un DPI cuando uso el diseñador? Parece que si se usan diferentes configuraciones de DPI con el diseñador, volverá a diseñar los controles cada vez que edite un formulario con un DPI diferente, moviéndolos sutilmente, lo que significa que es difícil obtener resultados consistentes. Eee. quizás he respondido mi propia pregunta. Me puedo quedar con un DPI para cuando use el diseñador. Solo me preguntaba si todos los demás ya lo estaban haciendo o tenían algún otro enfoque. –

Respuesta

1

No creo que el establecimiento de su ppp a un valor diferente de forma permanente le ayudará. El problema es que hay problemas cuando cambia los ppp, es decir, el diseño del formulario que tiene no puede tratar con diferentes ppp.

No tengo una solución absoluta para usted, excepto que debe probar con diferentes dpis y ver si produce problemas con la pantalla de formulario. No es difícil determinar qué causa problemas y aprenderá qué evitar con bastante rapidez.

+1

He estado haciendo el desarrollo de WinForm por un tiempo, y todavía no he aprendido qué evitar. :) –

+0

Lo que estoy diciendo es que si prueba con diferentes dpi, pronto podrá obtener sus formularios para manejar mejor las diferentes configuraciones de dpi. – kristianp

4

No. No necesita tener siempre el DPI configurado en 96 cuando usa el diseñador de WinForms.

Si establece la propiedad AutoScaleMode en Dpi, el diseñador escribirá el sistema actual Dpi en el archivo designer.cs en la propiedad AutoScaleDimensions para el formulario. Cuando el diseñador se utiliza en un sistema con un Dpi diferente, esta información se usará para reescalar el formulario y el diseñador se puede usar en un Dpi diferente.

Cuando probé otros modos de escalado, esto no pareció funcionar bien. "Ninguno" significaba que los controles no se escalarían en el tiempo de ejecución, "Fuente" parecía sufrir errores de redondeo y, cuando cambiaba la configuración de visualización Dpi, los tamaños de control podían cambiar ligeramente provocando errores.

También encontré que para los UserControls que se agregan a los formularios, es mejor establecer su AutoScaleMode en Heredar. Si usa Dpi, los controles se redimensionarán dos veces y terminarán distribuyéndose incorrectamente.


me ocurrió con las directrices anteriores después de unas horas de experimentación y búsqueda en Internet donde encontré los dos artículos siguientes:

http://msdn.microsoft.com/en-us/library/ms229605.aspx

y:

http://kbalertz.com/967578/Child-controls-UserControl-clipped-system-lower.aspx

Cuestiones relacionadas