Tôi muốn khởi tạo điều khiển người dùng theo lập trình trong một tệp DLL để lưu nó sau đó dưới dạng tệp PNG. Điều này thường không có vấn đề với PngBitmapEncoder và RenderTargetBitmap.WPF Thực hiện điều khiển người dùng theo lập trình để hiển thị nó dưới dạng PNG
Đây là những câu hỏi của tôi:
- Làm thế nào để nhanh chóng kiểm soát? Đơn giản với nhà điều hành mới?
- Tôi có phải khởi tạo nó trong một chuỗi riêng biệt không?
- Làm cách nào để buộc kiểm soát cập nhật tất cả các con của nó và tự hiển thị lại?
Đây là mã của tôi để nhanh chóng điều khiển người dùng và lưu nó như PNG-file (LetterFrequency là kiểm soát người sử dụng):
[STAThread]
static void Main(string[] args)
{
LetterFrequency let = new LetterFrequency();
let.Width = 600;
let.Height = 400;
let.Background = Brushes.White;
let.Measure(new Size(let.Width, let.Height));
let.Arrange(new Rect(new Size(let.Width, let.Height)));
let.UpdateLayout();
RenderTargetBitmap bitmap = new RenderTargetBitmap((int)let.Width, (int)let.Height, 96d, 96d, PixelFormats.Pbgra32);
bitmap.Render(let);
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(bitmap));
using (Stream stm = File.Create("test.png"))
{
png.Save(stm);
}
}
Nếu bạn chạy các ứng dụng theo cách này, nó tạo ra các tập tin PNG , nhưng dữ liệu, sẽ được thêm vào XAML không hiển thị, nếu bạn nhìn vào XAML Designer, bạn có thể thấy biểu đồ với một số bong bóng. Tệp png chỉ chứa khu vực biểu đồ, nhưng không có bong bóng? Lý do tại sao mà? Tôi nghĩ rằng đó là một vấn đề Cập nhật/kết xuất, nhưng làm thế nào để giải quyết vấn đề này?
Đây là giải pháp phòng thu trực quan, nó chứa Dự án Console, hiển thị điều khiển người dùng với tệp PNG và hai dự án khác của bộ công cụ WPF cho biểu đồ.
Có một cái nhìn vào nó, nó sẽ tạo ra file PNG trong bin/Debug tương ứng trong exe thư mục: http://www.file-upload.net/download-1904406/ChartRenderBitmap.zip.html
Hy vọng nó hoạt động mà không vấn đề!
Cảm ơn!
Cảm ơn bạn đã giải pháp thú vị của bạn, nhưng việc tạo ra bảng xếp hạng nên được thực hiện càng nhanh càng tốt, vì vậy không hình ảnh động sẽ là tốt nhất. Để ghi đè hình ảnh động, tôi chỉ cần tạo một mẫu điều khiển mới cho điểm dữ liệu bong bóng, nhưng bây giờ có một vấn đề khác với mục chú giải. Hãy xem bài trả lời của tôi! –