Quelqu'un peut-il expliquer pourquoi tout dans WPF est flou? Est-ce quelque chose qui peut être réparé?Pourquoi tout dans WPF est flou?
Répondre
La raison en est le système anti-aliasing qui étend la ligne sur plusieurs pixels si elle ne s'aligne pas avec les pixels du périphérique physique.
WPF est indépendant de la résolution. Cela signifie que vous spécifiez la taille d'un élément d'interface utilisateur en pouces, pas en pixels. Une unité logique dans WPF est 1/96 de pouce. Cette échelle est choisie, car la plupart des écrans ont une résolution de 96 dpi. Donc, dans la plupart des cas, 1 unité logique correspond à 1 pixel physique. Mais si la résolution de l'écran change, cette règle n'est plus valide.
Tous les contrôles WPF fournissent une propriété SnapsToDevicePixels
. Si la valeur est true, le contrôle s'assure que toutes les arêtes sont dessinées de manière précise sur les pixels de l'unité physique. Mais malheureusement, cette fonctionnalité est uniquement disponible au niveau du contrôle.
Quick Fix:
Utilisez ces options chaque conteneur de la racine à votre contrôle floue
UseLayoutRounding="True"
RenderOptions.BitmapScalingMode="NearestNeighbor"
SnapsToDevicePixels="True"
RenderOptions.ClearTypeHint="Enabled"
Explication:
UseLayoutRounding = true corrige des problèmes de mise en page sous-pixel . Ils se produisent souvent parce que, par exemple, Les effets redimensionnent les contrôles pour être quelque chose entre les pixels.
RenderOptions.BitmapScalingMode = NearestNeighbor corrige un échantillonnage flou des bitmaps. Les bitmaps sont utilisés lorsque des effets ou d'autres techniques sont utilisés. Lorsqu'ils sont réappliqués au conteneur ou au contrôle, ils peuvent se retrouver entre les pixels et donc interpoler les pixels du bitmap.
SnapsToDevicePixels = "true" fixe des polygones verticaux et horizontaux, des lignes et des rectangles étant rendus inbetween pixels
RenderOptions.ClearTypeHint = "activé" Réactive cleartype le texte. Il est désactivé très facilement par les effets ou chaque fois que le moteur de rendu ne connaît pas l'arrière-plan exact d'un texte.
Vous devez l'utiliser sur tous les conteneurs car parfois, par ex. par les modèles de données, ces options sont à nouveau définies par défaut pour les sous-contrôles.
Ajout: Vous pourriez rencontrer des problèmes visuels sur les écrans 4K ou dans d'autres occasions. Par exemple, le texte peut être déchiré au milieu ou certains pixels manquent complètement, même des lignes entières de 1pixel peuvent devenir invisibles. Vous avez besoin de techniques supplémentaires pour résoudre ces problèmes. – ecreif
- 1. Pourquoi mon UIImageView est-il flou?
- 2. pourquoi tout est parti avec l'affichage: bloquer?
- 3. WPF Datagrid Bouton "Sélectionner tout" - "Désélectionner tout"?
- 4. Evénement flou JQuery
- 5. accélérer avec le flou?
- 6. Flou page avec CSS
- 7. jQuery - flou de champs multiples
- 8. événements focus/flou JQuery aider
- 9. jquery validate bind flou événement
- 10. WPF MultiBinding échoue. Pourquoi?
- 11. JavaScript flou() commande dans IE8 sur Vista ne fonctionne pas
- 12. WPF interne: pourquoi UserControl est en train de surcharger AdjustBranchSource?
- 13. Alternative de l'effet de flou sur DrawingVisual
- 14. Comment créer un texte flou dans une vue iPhone?
- 15. WPF: Aidez-moi! Visual Brush étend tout le contenu
- 16. WPF Listbox défilement automatique tout en faisant glisser
- 17. Pourquoi mon expression régulière sélectionne-t-elle tout?
- 18. Appliquer le filtre à tout dans AS3
- 19. La fonction JavaScript fonctionne bien dans Opera mais ne fonctionne pas du tout dans Firefox. Pourquoi?
- 20. L'élément TextFlow est-il valide dans WPF?
- 21. Est-ce que CollectionViewSource dans WPF est optimal?
- 22. Firefox 3 focus de la fenêtre et le flou
- 23. pourquoi la session est inattendue dans asp.net?
- 24. Pourquoi main() dans java est-il vide?
- 25. Modifier le style Listbox sélectionné et flou pour qu'il ne soit pas grisé
- 26. pourquoi suis-je obtenir un SIGTRAP dans gdb tout en déboguant l'extension Ruby C?
- 27. L'animation WPF ralentit lorsque la souris est dans la fenêtre
- 28. afficher div sur onload avec le flou d'arrière-plan
- 29. propriétés dans ComboBox dans WPF
- 30. Pourquoi ma zone de texte WPF est-elle "en lecture seule"?
Notez que la propriété SnapToDevicePixels n'a aucun effet sur les glyphes de texte. Essayez ceci sur TextBlock pour voir ce que je veux dire. Malheureusement, nous sommes coincés avec un texte flou pour le moment. –
Il ya plus sur les polices floues ici: http://stackoverflow.com/questions/190344/wpf-blurry-fonts-problem-solutions – Spoike