WPF: Comment afficher une image à sa taille d’origine?

J’ai un problème avec l’affichage des images dans WPF.

Voici mon code:

  

J’ai une image avec la taille originale 32 * 32, mais quand j’ai exécuté le code ci-dessus, l’image s’étirera pour remplir tout l’espace, au-delà de sa taille originale. Je mets également la propriété “Stretch” sur “None”, mais il semble que cela ne fonctionne pas.

Alors, comment puis-je résoudre ce problème? Je vous remercie!

Voici une question similaire. En général, définir Stretch="None" est suffisant.

Il est également très important que DPI ait l’image définie dans les métadonnées. Cela m’a pris pas mal de temps avant de comprendre que si le DPI de l’image est différent du DPI du moniteur (généralement 96), WPF redimensionne automatiquement l’image, car elle essaie d’être indépendante de DPI .

Essayez de ne pas spécifier la largeur ou la hauteur, utilisez-le plutôt:

  
  

Celui-ci fonctionne pour moi, pour une image avec 600x800 pixels et 96dpi .

@ rishad2m8 Si la taille est inconnue, on peut d’abord détecter la taille avec https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx .

Ajout à la réponse de Paya: pour compenser la tentative de WPF de s’adapter à la résolution des moniteurs, vous devez pouvoir définir la Width et la Height aux dimensions d’origine du fichier et utiliser Stretch="Fill" . Cela a fonctionné pour moi.