Jump to content
Tatia

Resolvido - PictureBox Ficar com alguma opacidade quando o Cursor passa em cima

Recommended Posts

Tatia

Boas malta, gostaria de colocar as PictureBox com alguma transparência quando passamos o rato (Cursor) em cima sabem como posso fazer isso?

Estou a usar a PictureBox desta forma.

Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
	Process.Start("c:\Program.exe ")
End Sub

Edite: Resolvido

Edited by Tatia

Share this post


Link to post
Share on other sites
ribeiro55

Usa os eventos MouseEnter e MouseLeave e define a propriedade Opacity em cada um deles.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
Tatia

Usa os eventos MouseEnter e MouseLeave e define a propriedade Opacity em cada um deles.

Agradeço a tua ajuda, mas não faço a mínima ideia de como usar esses eventos...

Mais alguém pode dar ai uma ajuda?

Quero apenas quando coloco o mouse em cima da imagem ele fica com uma opacidade de 85%

Share this post


Link to post
Share on other sites
nelsonr

Boas,

julgo que o picturebox não tem nenhuma propriedade para alterar a opacidade.

No entanto encontrei um exemplo, vê se ajuda:

Private Sub PictureBox1_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox1.MouseEnter
	PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Imagens\Imagem.jpg"), 0.85)
End Sub

Private Sub PictureBox1_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox1.MouseLeave
	PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Imagens\Imagem.jpg"), 1)
End Sub

Private Function ChangeOpacity(img As Image, opacityvalue As Double) As Bitmap
	Dim bmp As New Bitmap(img.Width, img.Height) ' Determining Width and Height of Source Image
	Dim Graphics As Graphics = Graphics.FromImage(bmp)
	Dim colormatrix As New ColorMatrix
	colormatrix.Matrix33 = opacityvalue
	Dim imgAttribute As New ImageAttributes()
	imgAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
	Graphics.DrawImage(img, New Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, imgAttribute)
	Graphics.Dispose()   ' Releasing all resource used by graphics

	Return bmp
End Function

  • Vote 1

Share this post


Link to post
Share on other sites
Tatia

Boas,

julgo que o picturebox não tem nenhuma propriedade para alterar a opacidade.

No entanto encontrei um exemplo, vê se ajuda:

Private Sub PictureBox1_MouseEnter(sender As Object, e As EventArgs) Handles PictureBox1.MouseEnter
	PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Imagens\Imagem.jpg"), 0.85)
End Sub

Private Sub PictureBox1_MouseLeave(sender As Object, e As EventArgs) Handles PictureBox1.MouseLeave
	PictureBox1.Image = ChangeOpacity(Image.FromFile("C:\Imagens\Imagem.jpg"), 1)
End Sub

Private Function ChangeOpacity(img As Image, opacityvalue As Double) As Bitmap
	Dim bmp As New Bitmap(img.Width, img.Height) ' Determining Width and Height of Source Image
	Dim Graphics As Graphics = Graphics.FromImage(bmp)
	Dim colormatrix As New ColorMatrix
	colormatrix.Matrix33 = opacityvalue
	Dim imgAttribute As New ImageAttributes()
	imgAttribute.SetColorMatrix(colormatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap)
	Graphics.DrawImage(img, New Rectangle(0, 0, bmp.Width, bmp.Height), 0, 0, img.Width, img.Height, GraphicsUnit.Pixel, imgAttribute)
	Graphics.Dispose()   ' Releasing all resource used by graphics

	Return bmp
End Function

Agradeço amigo infelizmente não resultou...

Share this post


Link to post
Share on other sites
nelsonr

Não resultou porque? Provavelmente não tinhas a chamada aos eventos.

Seleciona a picturebox em designmode, e na parte das propriedades / eventos (icon que parece um raio), procura por MouseEnter e associa a função PictureBox1_MouseEnter.

Faz o mesmo para o MouseLeave (associando a função PictureBox1_MouseLeave).

Edited by nelsonr
  • Vote 1

Share this post


Link to post
Share on other sites
Tatia

Boas, a troca de imagem já da faltava eu declarar (Imports System.Drawing.Imaging),

agora o problema e que ele não repõe a imagem predefinida quando tiro o mouse de cima...

Acredito que tenha de personalizar isso agora com o mouse enter e leave vou fazer uns testes para ver se me entendo melhor...

Edite:

Agora ja me intendi com isto ;)

Tinha de colocar a imagem de entrada e a de saída...

nelsonr Nem sei como agradecer toda a tua ajuda, tem sido brilhante tenho conseguido graças ao teu empenho e boa vontade em me ajudar...

Muito obrigado mais uma vez.

Edited by Tatia

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.