Mes images sont floues! Pourquoi n'est-ce pas WPF SnapsToDevicePixels de travail?
Je suis l'aide de quelques Images dans mon WPF application reposant.
XAML:
<Image Name="ImageOrderedList"
Source="images/OrderedList.png"
ToolTip="Ordered List"
Margin="0,0,5,5"
Width="20"
Height="20"
SnapsToDevicePixels="True"
MouseUp="Image_MouseUp"
MouseEnter="Image_MouseEnter"
MouseLeave="Image_MouseLeave" />
Mais, ils apparaissent flous.
Pourquoi ne pas SnapsToDevicePixels="True"
ligne prévenir ce problème?
- blogs.msdn.com/dwayneneed/archive/2007/10/05/...
- Votre image liens semblent avoir cassé. Si vous avez encore des images d'origine, s'il vous plaît reupload à pile.imgur. Merci.
- Si aucun de ces conseils de travail immédiatement, aussi essayer de changer la taille de votre image à un facteur 4 en largeur et en hauteur. Ainsi, au lieu de 179 X 44, essayez de 176 X 44.
Vous devez vous connecter pour publier un commentaire.
Vous souhaitez peut-être envisager d'essayer un nouveau bien, maintenant disponible dans WPF4. Laissez le
RenderOptions.BitmapScalingMode
à de haute Qualité ou tout simplement ne pas la déclarer.NearestNeighbor a fonctionné pour moi sauf qu'il a conduit à surprenant bitmaps en zoomant sur l'application. Il ne semble pas résoudre des problèmes où les icônes ont été dimensionnement étranges manières.
Sur votre élément racine (c'est à dire votre fenêtre principale) ajouter cette propriété:
UseLayoutRounding="True"
.Une propriété auparavant uniquement disponibles dans Silverlight a maintenant fixé tous les Bitmap dimensionnement des malheurs. 🙂
UseLayoutRounding="True"
Fixe mon problème après tout le reste a échouéPlutôt que d'utiliser
SnapsToDevicePixels
, j'ai plutôt utiliséRenderOptions.BitmapScalingMode
et ils sont maintenant belle et croustillante!XAML:
Voici à quoi il ressemble aujourd'hui:
Croustillant WPF Images http://img13.imageshack.us/img13/9926/crispwpfimages.gif
RenderOptions.BitmapScalingMode="NearestNeighbor"
a bien fonctionné!+1 pour Zack Peterson
Je suis en utilisant .Net 3.5 sp1 et il semble que la solution la plus simple pour un grand nombre d'images floues.
Ce n'est pas une grosse affaire pour spécifier RenderOptions en place, mais pour la 3e partie des composants d'un style dans l'application des ressources au niveau du sens:
Travaillé bien quand AvalonDock commencé à rendre floues les icônes.
À l'aide de la
UseLayoutRounding="True"
sur la Fenêtre racine dans de nombreux cas, mais j'ai rencontré un problème lors de l'utilisation de la WPF Ruban de contrôle. Mon application s'appuie sur les Onglets Contextuels qui apparaissent en fonction de ce que l'utilisateur est en train de faire et quand j'ai mis leUseLayoutRounding
àTrue
, l'onglet contextuel ne serait pas de se montrer et de le RibbonButton l'image de ni. Aussi, l'application se bloque pendant plusieurs secondes et le ventilateur du CPU se met à chanter.À l'aide de
RenderOptions.BitmapScalingMode="NearestNeighbor"
sur mon image corrigée le rendu de l'image de questions (floue et recadrée de l'image) et est entièrement compatible avec le Ruban Onglets Contextuels d'utilisation.RenderOptions.BitmapScalingMode="NearestNeighbor" fonctionne bien la plupart du temps. Cependant, parfois, vous aurez des problèmes graphiques (dans mon cas, 4 des 5 a montré des images fines, mais le cinquième avait une légère distorsion sur le bord droit). J'ai corrigé mon augmentant le contrôle de l'Image de la marge de droite de 1.
Si cela ne résout pas le problème, essayez la classe Bitmap de contrôle ci-dessus que EugeneZ mentionne. C'est un remplacement pour le contrôle de l'Image et pour l'instant c'est très bien fonctionné pour moi. Voir http://blogs.msdn.com/dwayneneed/archive/2007/10/05/blurry-bitmaps.aspx
Assurez-vous d'enregistrer l'image dans le même DPI que votre application WPF est de travailler dans, certains formats d'image avez cette info stockées sous forme de métadonnées. Je ne sais pas si cela résout le problème, mais j'ai ai quelques problèmes à cause de cela, où les images redimensionnées à 100% ont obtenu plus grand ou plus petit que prévu.
Peut-être quelque chose de similaire.
utilisation UseLayoutRounding=True vers le haut la plupart élément dans votre application
Je crois que c'est un bug (ou au moins, elle l'était). Découvrez ce Support de Microsoft, échange d'e-mail page pour quelques idées pour le résoudre.
J'ai trouvé que le RenderOptions.BitmapScalingMode="NearestNeighbor" ne fonctionne pas pour moi. Je suis sous Windows XP x32 avec DirectX 9.0 c. Comme le rendu réel pour WPF est fait avec DirectX, ce qui pourrait avoir un effet. J'ai l'anti-aliasing activé pour XP avec les entrées de registre suivantes:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Avalon.Graphiques]
"MaxMultisampleType"=dword:00000004
"EnableDebugControl"=dword:00000001
Toutefois, en tournant aa off avec ces paramètres n'a pas d'effet sur les images. Je pense que cela n'affecte que les Vues 3D.
Enfin, je trouve que le flou se produit avec le texte de TextBlocks ainsi que des images. Et le flou ne se produit que pour certains blocs de texte et d'images, pas tous d'entre eux.
J'ai constaté qu'aucune combinaison de l'proposé des solutions de rechange serait de soigner mon apparence aléatoire floue problème d'image. J'ai comme beaucoup d'autres ne peuvent pas passer à .net 4 afin d'utiliser le
UseLayoutRendering
propriété.Ce que j'ai trouvé du travail:
Ma première pensée, la lecture de la question, a vous soufflait à l'image de trop, mais cela ne semble pas être le cas en regardant l'image que vous avez de l'application.
Deuxième pensée est une palette de couleurs, mais avec du noir comme l'une des couleurs qui n'est pas rendu correctement, ce n'est pas comme probable.
Si vous pouvez écarter les deux ci-dessus, je suis actuellement perplexe.
Comme une expérience, vous pouvez essayer d'autres formats graphiques, mais PNG doit être fine. Je vais avoir à y penser un peu plus à venir avec une meilleure réponse.
J'ai essayé d'utiliser le RenderOptions.BitmapScalingMode=Qualité, on dirait que ce sont des causes de certains problèmes dans Windows 8.1, donc ce que j'ai fait a été de les exécuter par le biais de l'outil PngOut.exe
http://advsys.net/ken/utils.htm
Qui réduit l'en-tête de la png, et réduit également la taille, mais sans changer la qualité de l'image.
Et maintenant, toutes mes images sont parfaites! 🙂