Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - .NET

Страница: 1 |

 

  Вопрос: Прозрачность PictureBox'ов Добавлено: 18.09.08 13:06  

Автор вопроса:  @lex
Есть PNG картинка с прозрачностью...
Но при накладывании одного PictureBox'а на другой альфа канал заменяется цветом фона формы:
http://alex-m.do.am/p/2.jpg
Скажите, это лечится? :'(

Ответить

  Ответы Всего ответов: 8  

Номер ответа: 1
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #1 Добавлено: 18.09.08 13:31
Даже если делаю всю форму прозрачной (TransparencyKey), то получается вот такая фигня:
http://alex-m.do.am/p/3.jpg
:
Т.е. первый пикчебокс закрывается вторым, даже при том что они прозрачные(((
Можно ли это исправить, и если нет, то подкиньте контрол который позволяет это реализовать.
Мне ну оооооочень нужно :

Ответить

Номер ответа: 2
Автор ответа:
 VβÐUηìt



Вопросов: 246
Ответов: 3333
 Web-сайт: смекаешь.рф
 Профиль | | #2
Добавлено: 18.09.08 14:00
Unreal. Рекомендуется использовать функцию AlphaBlend.

См. Google.

Ответить

Номер ответа: 3
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #3 Добавлено: 18.09.08 14:30
VβÐ пишет:
AlphaBlend.

Пасиб)
Как вариант можно рисовать картинки прямо на форме)

Ответить

Номер ответа: 4
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #4 Добавлено: 18.09.08 14:38
Тогда вопрос номер 2)
  1. Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
  2. e.Graphics.DrawImage(image, x, y)

Сделать чтобы картинка рисовалась каждых несколько сек?) Вешал на таймер "Call Form1_Paint()", он ругается что нету аргументов...
Дописывал в Form1_Paint
  1. Asender = sender
  2. Ae = e

а в таймер "Call Form1_Paint(Asender, Ae)".
Рисует первую картинку, и потом начинает ругатся на строку
  1. e.Graphics.DrawImage(image, x, y)

Недопустимый параметр.

Где у меня ошибка (кроме ДНК *CRAZY*)?

Ответить

Номер ответа: 5
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #5 Добавлено: 18.09.08 15:24
Вобще не понимаю как нарисовать картинку не в процедуре Form1_Paint :
  1. Dim Gr As Graphics
  2.     Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
  3.         Gr = e.Graphics
  4.         e.Graphics.DrawImage(PictureBox1.Image, 0, 0)
  5. 'Это прекрасно рисует
  6.     End Sub
  7.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  8.         Gr.DrawImage(PictureBox1.Image, 30, 30)
  9. 'А на эту ругается "Недопустимый параметр"
  10.     End Sub

Ппц :

Ответить

Номер ответа: 6
Автор ответа:
 __Pavel__



Вопросов: 29
Ответов: 284
 Web-сайт: ммм.сайта.НЕТ
 Профиль | | #6
Добавлено: 18.09.08 15:39

  1.     Private Sub Form1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
  2.         Dim Gr As Graphics = e.Graphics
  3.         e.Graphics.DrawImage(PictureBox1.Image, 0, 0)
  4.     End Sub
  5.  
  6.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  7.         Dim Gr As Graphics = Me.CreateGraphics '<<< !!!!!
  8.         Gr.DrawImage(PictureBox1.Image, 30, 30)
  9.     End Sub

Ответить

Номер ответа: 7
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #7 Добавлено: 18.09.08 15:41
__Pavel__
Спасибо ОГРОМНОЕ)
Ппц)

Ответить

Номер ответа: 8
Автор ответа:
 @lex



Вопросов: 14
Ответов: 262
 Профиль | | #8 Добавлено: 18.09.08 17:16
Мне интересно нафига такое сделали... В VB6 пикчебоксы с прозрачностью прекрасно накладываются друг на друга без фона.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам