Tôi có hình ảnh trong đối tượng System.Drawing.Image và tôi cần phải tạo một đối tượng ImageBrush (được sử dụng cho thuộc tính Fill của Rectangle trong WPF chẳng hạn) từ nó. Tôi đoán có một cách để làm điều này, nhưng tôi không thể tìm thấy một.Làm thế nào để tạo ImageBrush từ System.Drawing.Image trong WPF?
5
A
Trả lời
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);
Giải pháp này, không giải phóng bộ nhớ của tay cầm. Để biết thông tin về cách xóa rò rỉ bộ nhớ, hãy xem 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>
Đây là chế độ xem có ràng buộc. Bạn có thể thay thế Ràng buộc bằng một hình ảnh uri.
Các vấn đề liên quan
- 1. Làm thế nào để Tạo ImageBrush trong mã C#
- 2. Làm thế nào để chuyển đổi 'System.Windows.Media.Imaging.BitmapImage' thành 'System.Drawing.Image'?
- 3. Làm thế nào để chuyển đổi System.Drawing.Image để Byte Array?
- 4. Làm thế nào để tạo ComboBox như UserControl trong WPF
- 5. Làm thế nào để tạo một nút Wrapping trong WPF
- 6. Làm thế nào để loại bỏ Glow của Button trên chuột di chuột trong WPF
- 7. System.Drawing.Image to stream C#
- 8. Làm cách nào để tạo trang cơ sở trong WPF?
- 9. Chuyển đổi System.Drawing.Image thành System.Windows.Controls.Image?
- 10. Làm thế nào để tạo treeview từ tệp XML bằng cách sử dụng WPF?
- 11. Làm thế nào để tạo ra một điều khiển nhanh chóng Datagrid WPF từ đầu?
- 12. ImageBrush cho Lưới lập trình
- 13. Làm cách nào để tạo bộ hẹn giờ trong WPF?
- 14. Làm thế nào để tạo và in các tài liệu XPS lớn trong WPF?
- 15. Làm thế nào để vẽ đường dẫn này trong WPF?
- 16. Làm thế nào để sử dụng ContextMenu UserControl trong WPF?
- 17. WPF: Làm cách nào để tạo nền lặp lại theo chiều ngang mà không bị sập?
- 18. Làm thế nào để gọi WPF Dispatcher trong Nunit?
- 19. Làm thế nào để theo dõi TextPointer trong WPF RichTextBox?
- 20. Làm thế nào để thiết lập một nền tảng của WPF Window?
- 21. Làm thế nào để tạo một kiểu trong một UserFrol WPF?
- 22. Làm thế nào để tạo một vòng lặp render trong WPF?
- 23. Làm thế nào để tôi "DoEvents" trong WPF?
- 24. Làm thế nào để làm mới một DataGrid WPF?
- 25. WPF: Làm cách nào để tạo hộp kiểm "pushlike"?
- 26. làm thế nào để nối hai từ điển để tạo một từ điển mới trong Python?
- 27. Làm thế nào để trích xuất DataGridCell từ lớp DataGridCellinfo trong wpf
- 28. Làm thế nào để phát hành hình ảnh từ nguồn hình ảnh trong WPF
- 29. Làm thế nào để xuất từ tập tin dữ liệu thành excel trong wpf C#
- 30. Làm thế nào để truy cập chuỗi kết nối trong ứng dụng WPF VS2012 từ app.config?