Картинная коробка теряет рисунок после перезагрузки - PullRequest
2 голосов
/ 22 марта 2011

Я сейчас работаю с PictureBox и столкнулся с одной проблемой.

Сначала я нарисовал один эллипс на PictureBox.

Хорошо рисует на картинке.

Но когда я сворачиваю форму и снова ее загружаю, эллипс, нарисованный на PictureBox, исчезает.

Любой может предложить решение этой проблемы ...

спасибо ...... ..

С уважением, Притеш Патель

Ответы [ 5 ]

5 голосов
/ 22 марта 2011

Графический объект в .NET имеет значение , а не режим сохранения , поэтому вам нужно нарисовать свой эллипс в событии Paint для объекта, в вашем случае - графического блока.

3 голосов
/ 22 марта 2011

Как Мартин предлагает вам перерисовывать картинку всякий раз, когда форма нарисована.

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

Вы можете создать объект Graphics из объекта Image , используя Graphics.FromImage .Используя этот объект, вы можете нарисовать свое изображение, как вы хотите, и когда вы закончите, вы можете назначить это изображение свойству Picture box ' Image .Это изображение будет сохраняться до тех пор, пока ваш объект формы живет.

2 голосов
/ 22 марта 2011

Я столкнулся с той же проблемой, что и вы с перерисовкой экрана. Чтобы решить эту проблему, я сохранил все пользовательские действия в списке, поэтому каждый раз, когда вызывается событие рисования, воспроизводятся все действия, записанные в списке. В вашем случае все координаты x, y будут сохранены до момента, когда пользователь отпустит мышь.

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

Вот ссылка, которая содержит пример кода, чтобы сделать это. http://social.msdn.microsoft.com/Forums/pl-PL/wpf/thread/048ae883-f3e2-4ddc-bb89-fd72f00dd755

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

Используйте Paint Событие вашего PictureBox

от MSDN:

Событие Paint возникает при перерисовке элемента управления. Он передает экземпляр PaintEventArgs методу (-ам), который обрабатывает событие Paint.

0 голосов
/ 22 марта 2011

Вам нужно вызвать метод Draw в событии рисования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...