2010-11-22 10 views
6

Mã này tạo ra một ngoại lệ với LINQPad mới nhất 4,28 betaVẽ một System.Drawing.Bitmap mới

new System.Drawing.Bitmap(200, 200).Dump(); 

Đây có phải là một vấn đề trong mã của tôi hay một vấn đề với .Dump (phương pháp khuyến nông LINQPad của)?

+0

Trong 4.26.2, tôi không nhận được một ngoại lệ, nhưng tôi không nhận được một hình ảnh một trong hai. (Tôi chỉ thấy các thuộc tính) – SLaks

Trả lời

12

Có khả năng đổ bitmap là một tính năng mới của LINQPad 4,28 beta - nhưng có vẻ như đó là một lỗi. Tôi sẽ tải lên bản sửa lỗi sau ngày hôm nay.

Chỉnh sửa: Bản dựng mới hiện đã được tải lên. Bạn có thể kiểm tra nó bằng cách chạy này:

using (var b = new System.Drawing.Bitmap (400, 200)) 
using (var g = Graphics.FromImage (b)) 
using (var f = new Font ("Arial", 40)) 
{ 
    g.SmoothingMode = SmoothingMode.AntiAlias; 
    g.FillEllipse (Brushes.CadetBlue, 0, 0, 400, 200); 
    g.DrawString ("LINQPad", f, Brushes.Black, 75, 70); 
    b.Dump(); 
} 

Lưu ý rằng bạn cũng có thể đổ hình ảnh bằng cách gọi Util.Image, đi qua trong một tên tập tin hoặc URI. Bạn có thể sử dụng sau để vẽ đồ thị bằng cách sử dụng Google's Chart API; Ví dụ, sau đây:

Util.Image ("http://chart.apis.google.com/chart?cht=p3&chd=s:Uf9a&chs=350x140&chl=January|February|March|April") 

tạo ra sản lượng này:

Google Chart Demo

+0

Cảm ơn Joe! Tôi sẽ thử nó tối nay. –

+0

Trong 4.43.06 Tôi cần làm: Util.Image ("url"). Dump() – Tim

+1

@Tim: không cần viết .Dump() nếu bạn có LinqPad trong chế độ "C# Expression". (bình luận cũ, tôi biết :)) – mortb

3

LINQPad không thể vẽ bitmap bằng Dump().

Thay vào đó, bạn có thể viết

Application.Run(new Form { ClientSize = bitmap.Size, BackgroundImage = bitmap}); 
+0

Cách giải quyết tốt :) –

+1

Thực ra, SLaks, trong phiên bản mới nhất có thể ;-) Cảm ơn vì cách giải quyết khác :-) –