Tenemos una imagen donde creamos coordenadas de cuadro de vista que son puntos topleft/bottom right dentro de la imagen que están configurados para permitir ver porciones de una imagen en diferentes momentos en nuestra aplicación. En WPF, ¿cómo cargamos una imagen y con los puntos topleft/bottom right dentro de esa imagen, solo mostramos la porción de la imagen dentro de ese cuadro de vista?En WPF, ver una parte de una imagen
11
A
Respuesta
14
Puede hacer esto con un CroppedBitmap:
<Image>
<Image.Source>
<CroppedBitmap Source="<path to source image>" SourceRect="20,20,50,50"/>
</Image.Source>
</Image>
Esto mostrará la región de 50x50 de la imagen a partir de la posición (20,20)
0
Me parece que se puede hacer que la imagen controle una parte de la caja de vista como se muestra abajo:
<Viewbox Name="vBox" Stretch="None" HorizontalAlignment="Left"
VerticalAlignment="Top" Height="50" Width="50">
<Image Name="ClippedImage"
Source="{Binding NotifyOnSourceUpdated=True, NotifyOnTargetUpdated=True}"
Stretch="None" />
</Viewbox>
Esto le dará una caja de vista 50x50. obviamente puedes cambiar la altura y el ancho para que se adapte a tus necesidades. Uso un scrollviewer para desplazarme por la viewbox más pequeña.
1
El uso de un RenderTransform con un clip funciona incluso mejor, ya que el CroppedBitmap es algo inmutable:
<Image x:Name="MyImage">
<Image.RenderTransform>
<TranslateTransform X="-100" Y="-100" />
</Image.RenderTransform>
<Image.Clip>
<RectangleGeometry Rect="0 0 250 250" />
</Image.Clip>
</Image>
Esto mostrará la imagen en el desplazamiento (100, 100) con un tamaño de (150, 150), así que no olvides que el rect debe incluir los startoffsets.
Aquí es un método para calcularlo en código:
public static void ClipImage(System.Windows.Controls.Image image, Rect visibleRect)
{
image.RenderTransform = new TranslateTransform(-visibleRect.X, -visibleRect.Y);
image.Clip = new RectangleGeometry
{
Rect = new Rect(
0,
0,
visibleRect.X + visibleRect.Width,
visibleRect.Y + visibleRect.Height)
};
}
Cuestiones relacionadas
- 1. Arrastrando una imagen en WPF
- 2. ¿Cómo mostrar una parte de una imagen?
- 3. Guardar wpf ver como imagen, preferiblemente .png
- 4. WPF Cursor en una imagen parcialmente transparente
- 5. ios Decodificar parte de una imagen
- 6. Hacer parte de una imagen transparente
- 7. obteniendo parte de una imagen con JavaScript
- 8. Creación de una imagen clicable en WPF
- 9. Recarga de una imagen en wpf
- 10. wpf datatrigger en una fuente de imagen
- 11. WPF - Graphics.CopyFromScreen devuelve una imagen en negro
- 12. Copie una parte específica de una imagen de almacenamiento intermedio en otra imagen de almacenamiento intermedio
- 13. ¿Cómo leo una imagen base64 en WPF?
- 14. Rellenar una parte de una imagen con color
- 15. Guardar un lienzo WPF como una imagen
- 16. cortar parte de una imagen de una imagen existente en java
- 17. Dibujo en la parte superior de una imagen en Javascript
- 18. ¿Cómo obtener una parte de una imagen y usarla como una imagen separada?
- 19. Sprites CSS - utilizando sólo una parte de una imagen como fondo de parte de un elemento
- 20. 'Graying Out' una imagen de botón WPF?
- 21. Deshabilitar el antialiasing en una imagen de WPF
- 22. posicionar un div en la parte superior de una imagen
- 23. Cómo cortar una parte de la imagen en C#
- 24. agregar una imagen a una etiqueta en wpf?
- 25. android - Cómo cortar una parte de la imagen y mostrarla en la vista de la imagen
- 26. Probar para ver si existe una imagen en C#
- 27. Cómo ocultar una parte de un control de WPF
- 28. Rendering una imagen en tiempo de ejecución en WPF
- 29. Cargando una imagen en un hilo de fondo en WPF
- 30. imagen de sprite CSS + fondo-repite una parte de ella