5

Estoy consultando un gran proyecto .Net winforms que tiene que poder ejecutarse en el modo "Touch" para que pueda ser operado usando una interfaz de pantalla táctil. La arquitectura de la aplicación ya contiene lógica de escala para agrandar las fuentes/pantallas en los formularios y controles .Net estándar y los controles personalizados también manejan la escala.Diálogos de Windows con fuentes grandes

El problema es que la aplicación usa OpenFileDialog y SaveFileDialog que no se escalan utilizando la misma lógica (que básicamente se ajusta el tamaño de la propiedad Font en el control y los formularios recursivamente). Creo que estos diálogos son diálogos nativos de Windows y la clase OpenFileDialog son en realidad solo clases contenedoras que exponen una interfaz .Net estándar para interactuar con ellos.

Una solución podría ser implementar diálogos personalizados para estas cosas, pero eso probablemente sería un trabajo extenso. Lo que realmente nos gustaría hacer es escalar de alguna manera el tamaño de la fuente de este diálogo en particular (tal vez a través de alguna magia de manejo de ventana P/Invoke).

Sé que una solución para la activación táctil sería ajustar el tamaño de la fuente de Windows en general, pero esa idea no se está poniendo al día con esta empresa, prefieren escalar la aplicación y dejar el resto del SO intacto.

¿Alguna experiencia o ideas sobre cómo puede escalar estos diálogos a una fuente más grande? ¿O deberíamos simplemente morder la bala y crear diálogos personalizados para esto?

+0

[Este] (http://www.codeproject.com/KB/dialog/OpenFileDialogEx.aspx) artículo puede ayudarlo. – ahazzah

+0

El artículo es bueno, pero yo no iría de esta manera. Prefiero reescribir el código que piratear las clases selladas de .NET. La próxima versión del marco o los cambios de API podrían romper fácilmente su código. Usar controles de terceros podría ayudarte mucho aquí (pagos o gratuitos). Primero iría en busca de un control de árbol, que es más difícil de personalizar y todo. –

+0

[Esto] (http://www.codeproject.com/KB/dialog/CustomizeFileDialog.aspx) otro artículo podría ayudarlo también =) –

Respuesta

1

Sé que una solución para el tacto de habilitación sería ajustar el tamaño fuente de Ventanas en general, pero esa idea no es muy adictivo con esta empresa, que prefieren escalar la aplicación en sí y dejar el resto del sistema operativo sin tocar.

Los cuadros de diálogo a los que hace referencia son parte del "resto del sistema operativo" que preferirían dejar intactos. Puede usar los cuadros de diálogo comunes, forzándose a aumentar la escala de la fuente en el panel de control, es decir, a todo el sistema, o implementar esos diálogos usted mismo.

Una alternativa podría ser crear un escritorio de Windows separado utilizando la API adecuada, aumentar su escala de fuente y ejecutar la aplicación allí (es decir, dejar que la aplicación cree, use y destruya ese escritorio). Luego, la aplicación y todos los cuadros de diálogo comunes se ampliarán. Sin embargo, la aplicación nunca se vería con otras aplicaciones en una pantalla, y tendría que encargarse de cambiar de escritorio en la aplicación (creo). Y no verías nada más que la GUI de la aplicación cuando la aplicación está activa. Sin botón de inicio, sin barra de tareas, sin tuerca. Ver por ejemplo http://www.codeproject.com/KB/cs/csdesktopswitching.aspx para más detalles.

+1

Aceptaré esto como la respuesta ya que este ha sido el único viable publicado (aunque esperaba algo más que "reintrodují los diálogos tú mismo" :)) –

-1

La mejor solución para usted sería crear un formulario implementar el encabezado con una etiqueta y con botón de cierre y en el resto del formulario poner lo que necesita. En ese caso, la fuente de las etiquetas se puede aumentar al tamaño que desee. cuando desea configurar este cuadro de diálogo simplemente llame a .sohwDialog() en el formulario

Cuestiones relacionadas