Google для sql симпатичный принтер или взгляд здесь . Я не попробовал его сам, но это дает Вам хорошее начало. Большинство коммерческих инструментов как Жаба имеет опцию "форматирования", которая помогает, также.
Есть несколько способов сделать это, самый простой - заблокировать растровое изображение, которым вы управляли с помощью GDI, получить пиксельный буфер (Scan0 IntPtr в BitmapData, который вы получаете из блокировки). CopyMemory (...) из пиксельного буфера в WriteableBitmap.BackBuffer .
В WPF есть более эффективные способы, например использование InteropBitmap вместо WriteableBitmap. Но для этого нужно больше p / invoke.
Попробуйте составить пользовательский элемент управления Windows Form в своем проекте WPF и инкапсулировать в него рисунок GDI +. См. Пошаговое руководство: Размещение пользовательского элемента управления Windows Forms с помощью конструктора WPF
WPF поставляется с новыми графическими функциями, вы можете изучить его здесь , но если вы хотите использовать старый GDI + API, один из способов сделать это - создать там отрисовку Winform и разместить ее в WPF
Это вообще плохая идея. WPF - это совершенно новый API, и смешивание в GDI + может привести к снижению производительности, утечкам памяти и другим нежелательным вещам.