Нарисуйте растровое изображение из элемента управления выше экрана - PullRequest
2 голосов
/ 16 марта 2011

У меня довольно много проблем с сохранением элемента управления C # в файл растрового изображения.Данный элемент управления является своего рода поверхностью для рисования, на которой пользователь может писать текст, рисовать картинки и рисовать прямоугольники.Элемент управления можно изменять и перетаскивать.Что происходит, когда элемент управления действительно большой и не полностью виден на экране, невидимые части элемента управления сохраняются наполовину нарисованными на растровом изображении.Код, используемый для создания растрового изображения, довольно прост:

Bitmap bitmap = new Bitmap(myControl.Width, myControl.Height);
myControl.DrawToBitmap(bitmap);

Я попытался использовать следующие методы, чтобы попытаться получить полностью нарисованное растровое изображение, но безуспешно:

myControl.Invalidate(myControl.ClientRectangle, true);
myControl.Refresh();
myControl.Update();
Application.DoEvents();

Я не могууменьшите масштаб элемента управления, чтобы сделать его полностью видимым, поскольку разрешение и качество изображения очень важны для этого проекта.На самом деле я пытаюсь увеличить изображение, чтобы повысить его качество.Есть ли способы, которыми я не осведомлен о создании изображения из элемента управления?

Спасибо.

Ответы [ 2 ]

1 голос
/ 17 марта 2011

DrawToBitmap имеет ограничения и не всегда работает должным образом. Попробуйте вместо этого поработать с родной GDI +

Вот пример

0 голосов
/ 17 июня 2011

Может быть, мой ответ здесь Захват окна, которое скрыто или свернуто может вам помочь?

...