8
votes

DateTimePicker a brisé après la mise à jour des créateurs de Windows 10

Application construite avec VS 2015, C #, Winforms, à l'aide du contrôle de Windows DateTimePicker, le texte est broulé après la mise à jour des machines à la mise à jour des créatures Windows.

Image Texte grouillée

Quelqu'un d'autre a-t-il d'autre chose ou existe-t-il un travail suggéré?


5 commentaires

L'image avant que l'image ne ressemble à l'image après l'image. :-)


Haha ... c'est une photo d'écran de la forme réelle. Ne prenez aucune attention aux étiquettes. / Jedi hand wave


Avez-vous un écran High-DPI? Je parierai que la mise à l'échelle DPI est en faute ici.


Grand appel ... ça ne semble pas être le problème cependant. En fait a créé un formulaire de test avec juste un DoneTimePicker ajusté la même chose que l'application Legacy et ne présentant pas ce comportement. La parcelle épaississe.


Même problème ici après la mise à jour des créateurs de Windows (et dans certains cas, le texte est espacé de longue durée horizontalement). Le contrôle de texte est correct dans Visual Studio mais Garbed lors de l'exécution de l'application. Changer de police, unités et taille n'a pas aidé. D'autres contrôles de texte rendent bien, alors ressemble à un bug.


12 Réponses :


2
votes

Avez-vous un écran High-DPI? Même si vous ne le faites pas, il y a de bonnes chances que la mise à l'échelle DPI mise à jour est en faute ici. Si tel est le cas, vous pourrez peut-être "corriger" cela simplement en définissant une valeur dans dpiaware et dpiawares des valeurs du fichier manifeste pour votre projet comme décrit ici:

Améliorations de mise à l'échelle haute DPI pour les applications de bureau dans la mise à jour de Windows 10 Créateurs

Je n'ai pas encore eu à le faire moi-même, alors je ne peux pas que vous ne puissiez que vous indiquer où regarder, et non à ce que les bonnes valeurs exactes devraient être pour votre situation.

Même si ce n'est pas votre problème, vous voudrez peut-être passer quelques minutes à vérifier que votre application gère bien la situation de High-DPI. C'est aussi une excuse décente pour que votre entreprise vous achète un bon nouveau moniteur :)


3 commentaires

Excellente information. Je vais le faire et courir une nouvelle construction. Il faudra un certain temps pour appuyer sur un système avec le problème et rapportera.


La modification de tous les paramètres liés à DPI dans le manifeste n'a pas semblé avoir une incidence sur cela. Sous les propriétés de compatibilité, le réglage sur Windows 8 (ou plus bas, cela n'a pas vraiment d'importance) aide mais n'a pas complètement corrigé le problème. Le texte est maintenant espacé horizontalement vs être brouillé de sorte qu'il est utilisable, sinon joli. Nous obtenons une victoire de 10 créateurs Développement de la mise à jour VM et va aborder cela. J'aimerais upvouver votre réponse car cela me faisait aller dans la bonne direction, mais je n'ai pas le représentant de le faire.


Ne vous inquiétez pas ... Je n'ai pas vraiment besoin du représentant :)



0
votes

Donc, nous avons fini par supprimer le fichier manifeste et le contrôle rend désormais correctement. Ce qui est étrange n'est que le fait d'inclure un nouveau fichier manifeste avec seulement une balise de fixidentité avec la version et le nom causant ce contrôle Windows pour paniquer. Je me rends compte que pour d'autres, la suppression du manifeste peut ne pas être une option, mais cela a fixé notre problème.


1 commentaires

La perte de style s'est révélée pour ne pas être une option afin de supprimer le manifeste, nous avons juste utilisé un contrôle d'infratrisance pour le contourner. Pas exactement un correctif, mais au moins, je peux obtenir une construction de la porte.



1
votes

J'ai également rencontré cela aujourd'hui. Mon DateTimePicker a été rendu très au hasard, mais jamais acceptable. J'ai ceci comme une solution de contournement: Mon environnement est VS2015, .NET 3.5 et Winforms Ma configuration est la surface Pro 3 avec le nouveau Docker et 2 moniteurs externes Res 2560x1440 et l'échelle 100%. Ajout de l'app.Manifest à mon projet car je ne l'avais pas auparavant. Ajout du dpiaware à app.Manifest pour être système comme celui-ci:

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


4 commentaires

Ni l'app.Manifest ou utiliser .NET 4.7 a résolu mon problème (essais dans Visual Studio 2017)


Dans .NET 4.7 Avez-vous essayé la permission de la DIPAIAIALE Permonitorv2 comme décrit ici? blogs.windows.com/buildingapps/2017/04/04/...


Oui, pas d'améliorations. J'ai même essayé d'ajuster les paramètres de compatibilité de l'application sans succès ni. Tous les autres composants WinForms sont rendus corrects, alors je suppose que c'est un bogue dans la mise à jour Windows Creator.


Ce n'était pas assez stable, j'ai aussi dû utiliser l'application.EnablesVisualstyles avec ses inconvénients pour assurer un peuplepicker



0
votes

Nous recevons ce même problème. Vb.net vs 2012 .NET 4.5. Le DateTimePicker est gâché. J'ai aussi posté ceci sur

https://connect.microsoft.com/visualstudio/feedback/details/3129203/date-in-DateTime-Of-mfc-application-is-geting-cropped-in-win10 -redstone2-Build-15055


0 commentaires

2
votes

Activation des styles visuels XP résolus pour moi.


1 commentaires

Pourriez-vous poster le processus pour faire cela? Cela aiderait les autres à déterminer facilement si cela fonctionnerait également pour eux. Merci!



0
votes

J'ai essayé la plupart des suggestions ici et, dans d'autres endroits, y compris les changements manifestes ,.NET 4.7, etc. Cependant, une modification supplémentaire requise dans ma configuration était d'augmenter la taille du calendrier sur le contrôle lui-même.

La valeur par défaut sur mon système était de 7,875. Changer à 103t corrigé le problème d'affichage (la modifiant à une valeur légèrement inférieure à l'affichage, mais ne l'a pas corrigé).

Disclaimer: Cela n'a pas été testé en profondeur et peut casser d'autres scénarios. Ces informations sont destinées à aider à trouver une solution finale.


4 commentaires

Essayé différentes polices, tailles et unités avec .NET 4.7, mais le problème persiste. Les dates sont chevauchées, brouillées, hyperspacées ou même disparaissent.


Avez-vous testé sur un DPI élevé ou un périphérique de résolution normal? Avez-vous ajusté le calendrierfont ou la propriété de polices?


J'ai testé la modification du calendrierFont sous un périphérique de résolution normal et que le problème d'affichage n'a pas été corrigé.


Le dernier morceau du puzzle pour moi était d'ajouter une application.EnableVisualstyles () à la principale (). Cela a considérablement modifié l'apparence de l'application, mais elle peut désormais fonctionner correctement dans les trois environnements (pré-Cu, Cu W / RES normal et Cu W / RES).



5
votes

Activer les styles visuels de l'application WinForms, avant que le formulaire contenant le DateTimePicker soit affiché. XXX


3 commentaires

Celui-ci a travaillé, merci beaucoup! Après avoir testé tout le reste sans succès, il s'agit de la seule chose qui fonctionnait sans changer d'autres paramètres (polices, tailles, manifeste ...)


Dans mon cas, Form1 ne contient pas le composant DateTimePicker, mais permettant aux styles avant l'application.Run (formulaire) fixe de nombreux autres formulaires comprenant un composant DateTimePicker


Cette solution modifie le style visuel de plusieurs composants, mais dans mon cas est utilisable (et acceptable)



0
votes

Comme les autres ont suggéré, cette ligne a eu une ligne à votre forme principale et cela a fonctionné pour moi: xxx

Vous pouvez également découvrir les lignes en bas dans l'application app.manifest < / code>. Cela dépend du projet.


0 commentaires

2
votes

SO Windows 10 1703 a présenté de nouveaux défis, parmi eux ce refus étrange d'afficher une date dans la commande DateTimePicker, à moins que vous cochez la case "Activer le style Visual XP" pour l'application (ou le faire de manière programmatique). Ce Tweak corrige le problème de la date-rendu, mais maintenant d'autres contrôles, tels que des boîtes de liste déroulante, des répertoriers des zones de texte et des boutons deviennent plates et morales. Pas bon. Ce dont nous avons besoin est une vraie solution qui rend le "style visuel XP" inutile, ou est la programmation Windows des formulaires sur la sortie et donc pas intéressant à soutenir?


0 commentaires

0
votes

Un correctif pour ce problème est prévu pour être inclus dans la mise à jour cumulative de juin pour Windows 10.


3 commentaires

Pourriez-vous fournir une référence à cette déclaration?


Nous sommes en juin, la mise à jour libérée mais le problème reste :(


La mise à jour cumulative de juin pour Windows 10 (KB 4022725) comprend un COMCTL32.dll mis à jour contenant une solution pour ce problème. La version du fichier doit être 5.82.15063.413 une fois la mise à jour installée.



0
votes

Ceci est un bogue dans la date de sélection de la date d'heure implémentée dans le comcl32.dll version 5. Il devrait y avoir une solution pour ce problème dans un proche avenir.

Le contrôle de la date de la date d'heure implémenté dans le comcl32.dll version 6 ne semble pas être affecté par ce problème.


0 commentaires

3
votes

La mise à jour cumulative de juin pour Windows 10 (KB 4022725) comprend un COMCTL32.DLL mis à jour contenant une solution pour ce problème. La version du fichier doit être 5.82.15063.413 une fois la mise à jour installée.

https://social.msdn.microsoft.com/forums/en-us/4cf03067-Af8C-F4B1483E88BA/Date-Time-Parrière -After-Windows-10-Créateurs-Mettre à jour? Forum = WindowsGeneralDevelopmentissues


0 commentaires