J'ai un problème avec l'affichage des images dans WPF.
Voici mon code:
<Button HorizontalAlignment="Left" Grid.Column="1" Grid.Row="5" Margin="0,5">
<Button.Content>
<StackPanel Orientation="Horizontal" Margin="10,0">
<Image Source="/images/user_add.png" Stretch="None" HorizontalAlignment="Center" VerticalAlignment="Center" Width="24" Height="24" />
<TextBlock Text="添加" />
</StackPanel>
</Button.Content>
</Button>
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. J'ai également défini 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!
Celui-ci fonctionne pour moi, pour une image avec
600x800 pixels
et96dpi
.@ 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 je suppose.
la source
Essayez de ne pas spécifier la largeur ou la hauteur, utilisez-le comme ceci à la place:
la source
Ajout à la réponse de Paya: pour compenser
WPF
la tentative de s'adapter à la résolution des moniteurs, vous devriez être en mesure de réglerWidth
etHeight
aux dimensions et à l'utilisation d'origine du fichierStretch="Fill"
. Cela a fonctionné pour moi.la source
Si vous souhaitez afficher l'image avec la taille d'origine, mais que vous ne connaissez pas la taille de l'image, je pense que le meilleur moyen est de définir l'image comme arrière-plan de UIElement. Comme ça:
la source