Tenho um problema com a exibição de imagens no WPF.
Este é o meu código:
<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>
Eu tenho uma imagem com tamanho original 32 * 32, mas quando eu executei o código acima, a imagem vai se esticar para preencher todo o espaço, além de seu tamanho original. Também defino a propriedade "Stretch" como "None", mas parece que não funciona.
Então, como posso resolver esse problema? Obrigado!
Este funciona para mim, para uma imagem com
600x800 pixels
e96dpi
.@ rishad2m8 Se o tamanho for desconhecido, pode-se detectar o tamanho primeiro com https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx, eu acho.
fonte
Tente não especificar a largura ou altura, use-o assim:
fonte
Acrescentando à resposta de Paya: para compensar
WPF
a tentativa de se adaptar à resolução dos monitores, você deve ser capaz de definir oWidth
eHeight
para as dimensões originais e uso do arquivoStretch="Fill"
. Isso funcionou para mim.fonte
Se você deseja exibir a imagem com o tamanho original, mas não sabe o tamanho da imagem, acho que a melhor forma é definir a imagem como fundo do UIElement. Como isso:
fonte