2011-12-13 36 views

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