我在System.Drawing.Image對象中有圖像,我需要從它創建一個ImageBrush對象(用於在WPF中的Rectangle的Fill屬性)。我想應該有辦法做到這一點,但我找不到一個。如何從WPF中的System.Drawing.Image創建ImageBrush?
5
A
回答
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);
但是,此解決方案不釋放手柄的內存。有關如何刪除信息的內存泄漏看到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>
這與視圖模型綁定。你可以用圖像替換綁定。
相關問題
- 1. 如何從http鏡像創建System.Drawing.Image
- 2. 如何從System.Drawing.Image創建Emgu圖像?
- 3. WPF ImageBrush從代碼隱藏轉換?
- 4. C#WPF System.Drawing.Image到System.Windows.Media.Imaging.BitmapSource
- 5. 從System.Drawing.Image的文件系統上創建一個新的圖像?
- 6. wpf - 如何在imagebrush中支持位圖透明度
- 7. WPF如何創建字母
- 8. WPF窗口背景ImageBrush不平鋪
- 9. WPF - ImageBrush與PNG,不尊重alpha通道
- 10. 如何從WPF中的對象列表創建TreeView
- 11. 如何在WPF UserControl中創建樣式?
- 12. 如何在BackgroundWorker中創建WPF窗口?
- 13. 如何在WPF中創建List-like UserControl?
- 14. 如何在WPF中創建Cover Flow?
- 15. 如何在wpf中創建消息框
- 16. 如何在MVVM中創建WPF UserControl
- 17. 從示例中創建一個wpf UIElement
- 18. 如何旋轉System.Drawing.Image x度?
- 19. 如何複製System.Drawing.Image值?
- 20. 如何從WPF中的gridview中的內容創建一個csv Excel文件?
- 21. 創建的BitmapImage WPF
- 22. 在ProgressBar控制模板中動畫WPF ImageBrush
- 23. WPF如何創建CUSTOM tunel routedevent?
- 24. 如何創建此wpf工具欄
- 25. 如何爲WPF創建矢量圖像
- 26. 如何動態創建列表框wpf
- 27. 如何爲WPF屬性創建模板?
- 28. 如何創建徑向菜單在WPF
- 29. 如何創建WPF列表框模板
- 30. 如何創建從ExtJS的