Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

328
Visualizações
CommonOpenFileDialog hace que Windows Form se reduzca

Estuve trabajando en una aplicación de Windows Forms y recientemente agregué una página de configuración simple que permite al usuario seleccionar una carpeta para la salida. OpenFileDialog es feo y no es agradable de usar, por lo que agregué WindowsAPICodePack para obtener acceso a CommonOpenFileDialog , todo bien allí.

Cuando abro CommonOpenFileDialog , la aplicación de formulario de Windows se reduce a un tamaño más pequeño, como se muestra en la imagen adjunta.

A la izquierda está el programa normalmente, a la derecha está con el diálogo abierto:

A la izquierda está el programa normalmente, a la derecha está con el diálogo abierto.

Intenté verificar el tamaño del Form antes y después, eso no cambia, así que estoy chocando contra una pared de ladrillos. Cualquier información sería útil, puedo proporcionar más detalles si es necesario.

El código para abrir el cuadro de diálogo es:

 CommonOpenFileDialog dialog = new CommonOpenFileDialog(); dialog.DefaultDirectory = selectedFolderTextBox.Text; dialog.IsFolderPicker = true; if (dialog.ShowDialog() != CommonFileDialogResult.Ok) return; selectedFolderTextBox.Text = dialog.FileName;
about 4 years ago · Santiago Trujillo
2 Respostas
Responde à pergunta

0

Este problema me sucede cuando cambio la Escala y el diseño en Configuración de Windows-> Formulario del sistema 100% a un valor más alto. Probablemente tenga que ver con un escalado alto de DPI y DPI.

Encontré varias soluciones:

Solución 1: Configuración de Windows Forms para soporte de alto DPI

Esta solución es solo para .NET Framework versión 4.7 o superior.

Agregue esto al archivo App.config .

 <System.Windows.Forms.ApplicationConfigurationSection> <add key="DpiAwareness" value="PerMonitorV2" /> </System.Windows.Forms.ApplicationConfigurationSection>

Fuente: Configuración de su aplicación Windows Forms para soporte de alto DPI :

Habilite el reconocimiento de DPI por monitor en el archivo app.config.

Windows Forms presenta un nuevo elemento System.Windows.Forms.ApplicationConfigurationSection para admitir nuevas funciones y personalizaciones agregadas a partir de .NET Framework 4.7. Para aprovechar las nuevas funciones que admiten DPI alto, agregue lo siguiente al archivo de configuración de su aplicación.

 <System.Windows.Forms.ApplicationConfigurationSection> <add key="DpiAwareness" value="PerMonitorV2" /> </System.Windows.Forms.ApplicationConfigurationSection>

Importante

En versiones anteriores de .NET Framework, usó el manifiesto para agregar soporte de alto DPI. Este enfoque ya no se recomienda, ya que anula la configuración definida en el archivo app.config.

Solución 2: Utilice el paquete NuGet Ookii.Dialogs.WinForms

Utilice el paquete NuGet Ookii.Dialogs.WinForms. No tiene el problema de la contracción. Tiene un VistaOpenFileDialog similar al CommonFileDialog de WindowsAPICodePack. También tiene un buen navegador de carpetas VistaFolderBrowserDialog como CommonFileDialog con IsFolderPicker establecido en true .

Solución 3: anule el comportamiento de escalado de DPI alto para el archivo .exe

Esta solución requiere cambiar manualmente la configuración de compatibilidad para cada archivo .exe de la aplicación individualmente, por lo que no es la mejor solución.

Para hacer esto, debe hacer clic con el botón derecho en el archivo .exe, seleccionar Propiedades-> Compatibilidad-> Cambiar la configuración de DPI alta y marcar Anular el comportamiento de escalado de DPI alto y seleccionar una de las opciones (ver: Cómo usar la escala de DPI en Windows 10 para arreglar viejas aplicaciones borrosas )

about 4 years ago · Santiago Trujillo Relatório

0

Habilite el reconocimiento de dpi agregando el archivo app.manifest y descomente estos bloques.

 <application xmlns="urn:schemas-microsoft-com:asm.v3"> <windowsSettings> <dpiAware xmlns="http://schemas.microsoft.com/SMI/2005/WindowsSettings">true</dpiAware> </windowsSettings> </application>

Esto funciona para mí en mi Surface Pro 4 (escala de dpi 200%).

about 4 years ago · Santiago Trujillo Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda