Графический объект GDI + не соответствует изменению размера окна - PullRequest
0 голосов
/ 23 октября 2011

У меня следующая проблема.Я рисую на поверхности панели Windows Form, используя собственный GDI + (алгоритм рисования находится внутри собственной DLL, вызываемой P / Invoke).Все в порядке, но только до тех пор, пока не изменится размер панели.Если он сокращен, он отображается правильно.Однако, если он увеличен, GDI + перерисовывает только ту часть области Panel, которая соответствует его первоначальному размеру.

Почему это так?Мне действительно нужно создавать новый графический объект каждый раз, когда размер панели изменяется?

Ответы [ 2 ]

2 голосов
/ 09 января 2013

Ответил Ганс Пассант в комментарии:

You found out why, the Graphics object no longer matches the state of the window. You are assuming that it is expensive to create. It isn't, it only costs couple of dozen microseconds. It is only expensive to keep it around, needlessly using memory. Anyhoo, you need to recreate it when the window state changes.

0 голосов
/ 23 октября 2011

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

Попробуйте вызвать .Invalidate на панели при изменении ее размера.

...