Tengo una imagen en el objeto System.Drawing.Image y necesito crear un objeto ImageBrush (usado para la propiedad Fill de Rectangle en WPF, por ejemplo). Supongo que debería haber una manera de hacer esto, pero no puedo encontrar uno.Cómo crear ImageBrush desde System.Drawing.Image en WPF?
5
A
Respuesta
13
var image = System.Drawing.Image.FromFile("..."); // or wherever it comes from
var bitmap = new System.Drawing.Bitmap(image);
var bitmapSource = Imaging.CreateBitmapSourceFromHBitmap(bitmap.GetHbitmap(),
IntPtr.Zero,
Int32Rect.Empty,
BitmapSizeOptions.FromEmptyOptions()
);
bitmap.Dispose();
var brush = new ImageBrush(bitmapSource);
Esta solución, sin embargo, no libera la memoria del asa. Para obtener información sobre cómo eliminar la pérdida de memoria ver WPF CreateBitmapSourceFromHBitmap() memory leak
2
<Rectangle x:Name="RectangleName"
StrokeThickness="1"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Width="200"
Height="300"
Stroke="Black" >
<Rectangle.Fill>
<ImageBrush ImageSource="{Binding SelectedComponentsImage}" x:Name="ComponentVisualBrush" ViewboxUnits="Absolute"
Viewbox="0,0,300,300" ViewportUnits="RelativeToBoundingBox" Stretch="UniformToFill" Viewport="0,0,1,1"
RenderOptions.EdgeMode="Aliased" />
</Rectangle.Fill>
</Rectangle>
Esta es la modelo de vista de unión. Puede reemplazar el Enlace con una imagen uri.
Cuestiones relacionadas
- 1. WPF Ventana Fondo ImageBrush no mosaico
- 2. System.Drawing.Image para transmitir C#
- 3. Cómo convertir system.drawing.image en system.web.ui.webcontrols.image
- 4. Cómo convertir 'System.Windows.Media.Imaging.BitmapImage' a 'System.Drawing.Image'?
- 5. Convierte System.Drawing.Image a System.Windows.Controls.Image?
- 6. Cómo hacer un System.Drawing.Image semitransparente?
- 7. Preservar los valores de mapa de bits al crear un nuevo mapa de bits desde System.Drawing.Image
- 8. Cómo utilizar System.Drawing.Image en RDLC Image Control?
- 9. ImageBrush de cuadrícula mediante programación
- 10. ¿Cómo crear un control rápido de WPF Datagrid desde cero?
- 11. ¿Cómo crear treeview desde un archivo XML usando WPF?
- 12. Crear CommonGridTemplateColumn en WPF
- 13. Imagen de fondo de cuadrícula con ImageBrush
- 14. ¿Cómo crear contenido tabtable en WPF/C#?
- 15. Cómo crear un panel colapsable en WPF
- 16. ¿Cómo puedo convertir una imagen url para System.Drawing.Image
- 17. Crear un menú vertical en un Wpf
- 18. WinForms a WPF - ¿Cómo llegar desde aquí?
- 19. Convertir un System.Drawing.Image a una corriente
- 20. Mostrar dibujo.Imagen en WPF
- 21. ¿Cómo crear un editor de formas WPF?
- 22. carga excepción "Parámetro no válido" System.Drawing.Image
- 23. Cepillo de acero cepillado en WPF?
- 24. Cómo obtener el tamaño de archivo de "System.Drawing.Image"
- 25. Crear una barra de menú en WPF?
- 26. Crear cepillo de banda en WPF
- 27. Crear páginas o Windows en WPF
- 28. Cargar desde archivo separado en WPF
- 29. No escale ImageBrush mientras cambia el tamaño, ¡repítalo!
- 30. ¿Cómo crear una matriz de botones en WPF?