Я вижу, что этот вопрос был задан в 2011 году, но я твердо верю, что поздно лучше, чем никогда, и единственный другой «ответ» нигде не соответствует критериям этого сайта для правильного ответа, поэтому я предоставлю свой, чтобы помочь кому-либоеще, который найдет этот вопрос в будущем.
Вот простой пример, который показывает, как нарисовать прямоугольник и сохранить его на диск.Возможно, есть лучший (более краткий) способ сделать это, но, увы, каждая найденная в сети ссылка приводит к одному и тому же ответу «пожав плечами, я не знаю».
public static void CreateWpfImage()
{
int imageWidth = 100;
int imageHeight = 100;
string outputFile = "C:/Users/Krythic/Desktop/Test.png";
// Create the Rectangle
DrawingVisual visual = new DrawingVisual();
DrawingContext context = visual.RenderOpen();
context.DrawRectangle(Brushes.Red, null, new Rect(20,20,32,32));
context.Close();
// Create the Bitmap and render the rectangle onto it.
RenderTargetBitmap bmp = new RenderTargetBitmap(imageWidth, imageHeight, 96, 96, PixelFormats.Pbgra32);
bmp.Render(visual);
// Save the image to a location on the disk.
PngBitmapEncoder encoder = new PngBitmapEncoder();
encoder.Frames.Add(BitmapFrame.Create(bmp));
encoder.Save(new FileStream(outputFile, FileMode.Create));
}
НасколькоЯ могу сказать, что RenderTargetBitmap считается ImageSource, поэтому вы должны иметь возможность связать его с источником изображения элементов управления wpf напрямую, без каких-либо преобразований.