Ir para o conteúdo
Tatia

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

Mensagens Recomendadas

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

Editado por Tatia

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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"

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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%

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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

  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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...

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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).

Editado por nelsonr
  • Voto 1

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Editado por Tatia

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.