tôi sẽ không gọi nó là dễ dàng ... nhưng thành phần quan trọng là RenderTargetBitmap, mà bạn có thể sử dụng như sau:
RenderTargetBitmap rtb = new RenderTargetBitmap((int)control.ActualWidth, (int)control.ActualHeight, 96, 96, PixelFormats.Pbgra32);
rtb.Render(control);
Vâng, một phần đó là dễ dàng, bây giờ là RTB có các điểm ảnh được lưu trữ trong nội bộ ... nhưng bước tiếp theo của bạn sẽ được đặt ở định dạng hữu ích để đặt nó vào khay nhớ tạm, và tìm ra điều đó có thể lộn xộn ... có rất nhiều lớp liên quan đến hình ảnh mà tất cả tương tác với nhau.
Đây là những gì chúng tôi sử dụng để tạo System.Drawing.Image, mà tôi nghĩ bạn có thể đặt vào khay nhớ tạm.
PngBitmapEncoder png = new PngBitmapEncoder();
png.Frames.Add(BitmapFrame.Create(rtb));
MemoryStream stream = new MemoryStream();
png.Save(stream);
Image image = Image.FromStream(stream);
System.Drawing.Image (một hình ảnh mẫu đính kèm) không thể tương tác trực tiếp với các RenderTargetBitmap (một lớp WPF), vì vậy chúng tôi sử dụng một MemoryStream để chuyển đổi nó.
Câu hỏi này/câu trả lời giúp tôi cũng như: http://stackoverflow.com/questions/2557183/drawing- a-wpf-usercontrol-with-databinding-to-an-image –