Tengo un problema con la visualización de imágenes en WPF.
Aquí está mi 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>
Tengo una imagen con el tamaño original 32 * 32, pero cuando ejecuté el código anterior, la imagen se estirará para llenar todo el espacio, más allá de su tamaño original. También configuré la propiedad "Stretch" en "None", pero parece que no funciona.
Entonces, ¿cómo puedo solucionar este problema? ¡Gracias!
Este me funciona, para una imagen con
600x800 pixels
y96dpi
.@ rishad2m8 Si se desconoce el tamaño, uno puede detectar el tamaño primero con https://msdn.microsoft.com/en-us/library/system.drawing.image.size(v=vs.110).aspx , supongo.
fuente
Intente no especificar el ancho o el alto, utilícelo así:
fuente
Agregando a la respuesta de Paya: para compensar
WPF
el intento de adaptarse a la resolución de los monitores, debería poder configurar elWidth
yHeight
las dimensiones y uso originales del archivoStretch="Fill"
. Esto funcionó para mí.fuente
Si desea mostrar la imagen con el tamaño original, pero no conoce el tamaño de la imagen, creo que la mejor manera es establecer la imagen como fondo de UIElement. Me gusta esto:
fuente