|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Я правильно понимаю, что метод BeginContainer объекта Graphics не сохраняет само изображение, а сохраняет настройки Graphics, такие как преобразование координат например? Такое ощущение, что если нужно именно сохранить картинку, для этого работают только методы типа Clip, или как-то так называются. Рисование организую на Panel. Есть ли разница, как получать объект Graphics - по событию Paint из аргумента PaintEventArgs, или напрямую от Panel методом CreateGraphics? ... |
|||
:
Нравится:
Не нравится:
|
|||
01.10.2015, 23:23 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решеткаЯ правильно понимаю, что метод BeginContainer объекта Graphics не сохраняет само изображение, а сохраняет настройки Graphics, такие как преобразование координат например? да Изучающий си решеткаЕсть ли разница, как получать объект Graphics - по событию Paint из аргумента PaintEventArgs, или напрямую от Panel методом CreateGraphics? лучше всё рисование делать в методе Paint и получать Graphics из PaintEventArgs событие возбуждать вызовами Invalidate/Update/Refresh контрола Изучающий си решеткаТакое ощущение, что если нужно именно сохранить картинку, для этого работают только методы типа Clip, или как-то так называются. Что значит "сохранить" картинку? Clip только ограничивает область рисования ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 05:31 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изопропил, Сохранить картинку, это желание оптимизировать процесс отрисовки как бы. Если нужно "переместить видовой экран нажатым скроллом" например, то пока не вижу другой возможности, кроме как заново перерисовать все элементы рисунка объектом Graphics события Paint. Это реализовал, но при перемещении картинка не мгновенно перерисовывается, а как бы "моргает". Или другой момент. Задача сделать "резиновую линию" для элемента, находящегося "в режиме отрисовки", когда резиновая линия рисуется от уже щелкнутой точки до положения мыши. Здесь тоже пока не вижу другой возможности, кроме как сделать Clear() и отрисовать все заново включая точку положения мыши ("зависания" по событию MousMove в Panel). Для каждого изменения масштаба экрана, смещения, "резиновой линии" все время вызываю методы Draw...(Pen p, Point p1, ...). Вот и подумал, нельзя ли уже нарисованную картинку закинуть в какой-то буфер, и выкинуть снова в Panel но в другом масштабе. Или при прорисовке, нельзя ли всю кучу-последовательность Draw... направить в буфер, а потом в Panel выбросить из буфера готовый результат. Держал в руках давно книгу по созданию CAD, и там вроде была примерно такая мысль. Или может быть так - это "торможение-моргание" происходит от того, что все Paint обсчитываются на процессоре, а не на видеокарте. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 14:23 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решетка). Вот и подумал, нельзя ли уже нарисованную картинку закинуть в какой-то буфер, и выкинуть снова в Panel но в другом масштабе. можно конечно - Graphics.FromImage , рисовать на картине, нужные фрагметны копировать, но лучше в масштабе 1:1 Изучающий си решеткаИли может быть так - это "торможение-моргание" происходит от того, что все Paint обсчитываются на процессоре, а не на видеокарте моргание происходит от стирания фона и последующей перерисовки а вообще - для начала включи двойную буферизацию - https://msdn.microsoft.com/ru-ru/library/system.windows.forms.control.doublebuffered(v=vs.110).aspx ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 14:52 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изопропил, Двойная буферизация это свойство, присущее только форме? Для Panel вроде как нет его. Установил на true, не помогло. Ни на что не повлияло. Посмотрите мой проект, может там в другом косяк. Нажмите "массив", "создать", и попробуйте скроллом подвигать. Будет медленная перерисовка. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 16:34 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решеткаДля Panel вроде как нет его в наследнике можно выставить Код: c# 1. 2. 3. 4. 5. 6. 7. 8.
потом можно оптимизировать дальше ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 17:36 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решетка, пилять, панель это и есть форма по сути, закопипасть вот такой код в лоадер Form1 Код: c# 1. 2. 3.
и будет тебе щасте ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 17:38 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изопропил, Не очень понятно как использовать панель, когда она наследник. Форму и элементы управления компоную к конструкторе формы, в VS. Попытался объявить в пространстве имен Проекта вот этот класс-наследник от Panel с добавленными свойствами. И теперь мой конструктор формы выглядит вот так, не очень приглядно. В Проекте есть файл, Дизайнер, и туда пишется информация автоматически от моих действий в конструкторе формы. И как вклиниться в эту зашитую стандартную цепочку со своим самопальным классом-наследником? ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 18:59 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Где-то в степи, Скопипастил этот код в конструктор своей формы Form1, ну и добавил директиву using System.Reflection. Здорово! Теперь вообще не "моргает"! Просто волшебный эликсир ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 19:21 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решетка, ну хоть в конструкторе разместил прально, уже прогресс ( после иницализатора) уже прогресс гы.. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 19:30 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Где-то в степи, разработчики VS не рекомендуют самостоятельно изменять код инициализатора ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 19:46 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Изучающий си решетка, да я не про это.. а что это у вас фон дракульный вы гот или жуткий хацкер, жись и так не айс, а тут такой фон...(( ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 20:48 |
|
Что делает метод BeginContainer объекта Graphics?
|
|||
---|---|---|---|
#18+
Где-то в степи, Где-то в степижись и так не айс, а тут такой фон...(( черный что ли? Для глаз приятнее. Мне кажется во многих чертежных программах черный фон по умолчанию стоит. Белый слишком яркий, посидишь так день и не очень как-то. Смерть кстати в белом ... |
|||
:
Нравится:
Не нравится:
|
|||
02.10.2015, 21:09 |
|
|
start [/forum/topic.php?fid=20&fpage=76&tid=1401173]: |
0ms |
get settings: |
11ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
26ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
others: | 351ms |
total: | 470ms |
0 / 0 |