DateTimePicker distorcido após a atualização dos criadores do Windows 10

Aplicativo construído com o VS 2015, C #, WinForms, usando o controle do Windows DateTimePicker, o texto é distorcido após a atualização das máquinas para a Atualização de criadores do Windows.

Imagem de texto ilegível

Alguém mais se deparou com isso ou há algum trabalho sugerido?

A atualização cumulativa de junho para o Windows 10 (KB 4022725) inclui um COMCTL32.DLL atualizado que contém uma correção para esse problema. A versão do arquivo deve ser 5.82.15063.413 após a atualização ser instalada.

https://social.msdn.microsoft.com/Forums/pt-BR/4cf03067-46c4-4962-af8c-f4b1483e88ba/date-time-picker-garbled-after-windows-10-creators-update?forum=windowsgeneraldevelopmentissues

Ativar estilos visuais no aplicativo WinForms, antes que o formulário que contém o DateTimePicker seja mostrado.

Application.EnableVisualStyles(); //Form1 contains the DateTimePicker component Application.Run(new Form1()); 

Você tem um display de alta DPI? Mesmo que você não saiba, há uma boa chance de que a escala atualizada de dpi seja a culpa aqui. Nesse caso, você pode “consertar” isso simplesmente configurando um valor em dpiAware e dpiAwareness do arquivo de manifesto para o seu projeto, conforme descrito aqui:

Melhorias no escalonamento com alta DPI para aplicativos de área de trabalho na atualização de criadores do Windows 10

Eu ainda não tive que fazer isso, então agora só posso apontar para onde procurar, e não quais devem ser os valores corretos para a sua situação.

Mesmo que esse não seja o seu problema, convém passar alguns minutos verificando se o seu aplicativo é bem administrado na situação de alta DPI. É também uma desculpa decente para fazer com que sua empresa compre um novo monitor:

Ativar o Visual Styles do XP corrigiu para mim.

Assim, o Windows 10 1703 introduziu alguns novos desafios, entre eles essa estranha recusa em exibir uma data no controle DateTimePicker, a menos que você marque a checkbox “Ativar estilo visual do XP” para o aplicativo (ou faça isso de forma programática). Esse ajuste corrige o problema de reprodução de data, mas agora outros controles, como checkboxs suspensas, checkboxs de texto de listas suspensas e botões tornam-se planos e sombrios. Não é bom. O que precisamos é de uma correção real que torne o “estilo visual XP” desnecessário, ou a programação do Windows Forms está sendo descartada e, portanto, não é interessante dar suporte?

Eu também já vi isso hoje. Meu datetimepicker foi processado de forma muito aleatória, mas nunca é aceitável. Eu tenho isso como uma espécie de solução alternativa: Meu ambiente é VS2015, .net 3.5 e winforms Minha configuração é Surface Pro 3 com o novo docker e 2 monitores externos res 2560×1440 e escala de 100%. Adicionado app.manifest ao meu projeto como eu não tinha antes. Adicionado o dpiAware ao app.manifest a ser System assim:

   true/System   

Eu também defino o AutoScaleMode para None no meu formulário (mas obtive aproximadamente o mesmo resultado com Inherited). O dpiAware pareceu ajudar (mas não 100% estável). Isso funciona ao executar um aplicativo compilado, mas não funciona durante a debugging do Visual Studio. Então eu só recebo um período (.) Que é o meu sinal de separação de data.

exemplo de datetimepicker após atualizar para criadores de atualização após aplicar a solução alternativa ao executar o exe compilado

isso pode ajudar um pouco se não for possível atualizar o aplicativo para o .net 4.7

Então, acabamos excluindo o arquivo de manifesto e o controle agora é renderizado corretamente. O que é estranho é o fato de include um novo arquivo de manifesto com apenas uma tag assemblyIdentity com a versão e o nome faz com que esse controle do Windows surte. Percebo que, para outros, excluir o manifesto pode não ser uma opção, mas isso resolveu nosso problema.

Estamos recebendo exatamente o mesmo problema. VB.NET VS 2012 .NET 4.5. O datetimepicker está confuso. Eu também postei isso em

https://connect.microsoft.com/VisualStudio/feedback/details/3129203/date-in-datetime-of-mfc-application-is-getting-cropped-in-win10-redstone2-build-15055

Eu tentei a maioria das sugestões aqui e em outros lugares, incluindo alterações de manifesto, .NET 4.7, etc. No entanto, uma alteração adicional que foi necessária na minha configuração foi aumentar o tamanho de CalendarFont no próprio controle.

O padrão no meu sistema era 7.875. A alteração para 10pt corrigiu o problema de exibição (alterá-lo para um valor ligeiramente inferior melhorou a exibição, mas não a corrigiu).

Isenção de responsabilidade: isso não foi testado em profundidade e pode quebrar outros cenários. Esta informação destina-se a ajudar a encontrar uma solução final.

Como outros sugeriram, tinha essa linha para o seu formulário principal e funcionou para mim:

 Application.EnableVisualStyles() 

Você também pode descomentar as linhas na parte inferior do app.manifest . Depende do projeto.

Uma correção para esse problema está programada para ser incluída na atualização cumulativa de junho para o Windows 10.

Este é um bug no controle Date Time Picker implementado no COMCTL32.DLL versão 5. Deve haver uma correção para esse problema em um futuro próximo.

O controle Date Time Picker implementado no COMCTL32.DLL versão 6 não parece ser afetado por esse problema.