Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Нужна помощь в рисовании изображения поверх png 
V
    Опции темы
andreyn
Дата 6.4.2008, 20:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Здравствуйте!Подскажите плз, как реализовать следующее:
человек заходит на страничку, щелкает по рисунку (ImageButton1), в том месте куда он щелкнул должен прорисоваться маленький прямоугольник 2х2пкс поверх картинки. Остальное оформление страницы должно остаться неизменным. У меня не получается одновременно прорисовать и картинку и прямоугольник. Перепробовал кучу методов.
Как вариант можно ничего не прорисовывать на экране, а вносить изменения в файл картинки.Т.е. чел щелкнул по картинке, произошло добавление прямоугольника но без вывода на экран, а затем эти изменения записались в файл (картинка).
Сори если запутано.
PM MAIL   Вверх
vponomarov
Дата 6.4.2008, 21:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



в обработчике MouseDown пишешь что-нить типа такого
Код

            Graphics g = Graphics.FromImage(pictureBox2.Image);
            g.FillRectangle(Brushes.Black, e.X, e.Y, 2, 2);
            pictureBox2.Invalidate();



--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 6.4.2008, 22:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



vponomarov, спасибо за ответ, но скажите пож-ста, что за компонент PictureBox2, как его вставить на страницу? пробую писать в VS2005 там такого нет, покрайней мере в разработке для веб. 
Можно пример обработчика MouseDown? 
извините, я не ламер, но крайне мало программировал на C#.
Спасибо!
PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 10:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, PictureBox2 был взят для примера (это из Windows Forms).
можно использовать любой компонент содержащий Image.

Цитата(andreyn @  6.4.2008,  22:54 Найти цитируемый пост)
Можно пример обработчика MouseDown? 

а как вы вообще обрабатываете собитие нажатия на вашу кнопку? smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 7.4.2008, 10:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



vponomarov, в данном случае происходит обработка стандартного события ImageButton.
Часть кода,
Код

 protected void ImageButton1_Click(object sender, ImageClickEventArgs e)
    {
        Panel1.Visible = true;
        Label1.Text = e.X.ToString() + "," +
                     e.Y.ToString() ;

а рисование я дописываю ниже. Или я не прав?
Просто я не силен в этом, как самому создать событие на примере MouseDown ..?

PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 12:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, без вопросов, это вам решать на какое событие вешать действие.
просто в Windows Forms при событии Click нельзя получить координаты места щелчка.
а так все правильно.


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.4.2008, 12:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Чтобы рисовать что-то на контроле, нужно подписаться на его событие Paint и рисовать там.


--------------------
user posted image
PM MAIL WWW   Вверх
andreyn
Дата 7.4.2008, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



mr.DUDA, поясните пож-ста. Просто ImageButton1.Paint ..такого нет, или я не понимаю.
PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 14:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



mr.DUDA, не согласная я smile 
мною предложенный способ позволяет не подписываться на OnPaint и не нужно запоминать, что там пользователь наклацал smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
mr.DUDA
Дата 7.4.2008, 14:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



vponomarov, для пикчербокса - да, т.к. есть картинка smile, а в общем случае не прокатит (например на панели).


--------------------
user posted image
PM MAIL WWW   Вверх
vponomarov
Дата 7.4.2008, 14:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



mr.DUDA, в общем случае - да, не покатит.
но была ж поставлена конкретная задача smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 7.4.2008, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



mr.DUDA
vponomarov
Спасибо большое, скажите тогда уж, что значит подписаться на событие, на примере Paint.

PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, в концептуальном плане - тоже самое, что подписаться на событие нажатия мышки smile 
т.е. определить действия твоей программы когда наступает какое-нить событие.
если речь идет о Paint, то тут нужно прописать все, что связано с отрисовкой объекта
Код

//подписка
this.outputPanel.Paint += new System.Windows.Forms.PaintEventHandler(this.outputPanel_Paint);
//действие
private void outputPanel_Paint(object sender, PaintEventArgs e)
        {
            e.Graphics.Clear(Color.Black);
        }



--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 7.4.2008, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



Народ,  вы конечно извините что туплю, но вот что получилось, точнее не получилось..
Код

Graphics g = Graphics.FromImage(ImageButton1.Image);
        g.FillRectangle(Brushes.Black, e.X, e.Y, 2, 2);
        ImageButton1.Invalidate();

Ошибка 

Compiler Error Message: CS0117: 'System.Web.UI.WebControls.ImageButton' does not contain a definition for 'Image'

Подскажите, что не так? 
PM MAIL   Вверх
vponomarov
Дата 7.4.2008, 20:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, а как ты устанавливаешь картинку на кнопку?


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 7.4.2008, 20:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



vponomarov, картинку на imagebutton1 устанавливаю в свойстве ImageUrl. То же самое если подставить появляется другая ошибка..
Код

Graphics g = Graphics.FromImage(ImageButton1.ImageUrl);
        g.FillRectangle(Brushes.Black, e.X, e.Y, 2, 2);
        ImageButton1.Invalidate();

Ошибка:
Compiler Error Message: CS1502: The best overloaded method match for 'System.Drawing.Graphics.FromImage(System.Drawing.Image)' has some invalid arguments
И потом у ImageButton1 нет свойства или чего еще Invalidate.

PM MAIL   Вверх
mr.DUDA
Дата 7.4.2008, 21:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



andreyn, небось про ASP.NET речь идёт? Здесь обсуждался Windows Forms компонент.


--------------------
user posted image
PM MAIL WWW   Вверх
andreyn
Дата 7.4.2008, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



mr.DUDA, да про ASP.NET.
а есть ли возможность использовать windows forms для создания приложений, работающих в веб.
и как создать/добавить windows forms к проекту?
Thanks!


Это сообщение отредактировал(а) andreyn - 7.4.2008, 22:15
PM MAIL   Вверх
vponomarov
Дата 8.4.2008, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, извени, чувак, ты немного не по адресу smile 
нужно было сразу сказать, что разрабатываешь Web Forms.
тебе в соседний раздел smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 8.4.2008, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



vponomarov, все равно спасибо!
а ветка какая? Разработка под ASP.NET?

Это сообщение отредактировал(а) andreyn - 8.4.2008, 09:40
PM MAIL   Вверх
vponomarov
Дата 8.4.2008, 09:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 407
Регистрация: 11.8.2007
Где: Киев

Репутация: 4
Всего: 12



andreyn, угу  smile  
smile 


--------------------
user posted image
user posted image
PM MAIL ICQ   Вверх
andreyn
Дата 8.4.2008, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 23
Регистрация: 4.4.2008

Репутация: нет
Всего: нет



mr.DUDA, закройте пож-ста тему, хотя можно вообще удалить.
PM MAIL   Вверх
Страницы: (2) [Все] 1 2 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.0992 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.